Ajustado culomb counter
This commit is contained in:
parent
b090ed7495
commit
84962cb7de
|
|
@ -75,7 +75,7 @@ namespace AgroBase.Forms
|
||||||
lblGPS.ForeColor = Gps.Inicializado ? Color.Green : Color.Red;
|
lblGPS.ForeColor = Gps.Inicializado ? Color.Green : Color.Red;
|
||||||
if (Gps.Inicializado)
|
if (Gps.Inicializado)
|
||||||
{
|
{
|
||||||
lblGPSDetalhes.Text = Gps.QualidadeFix.ToString() + " - " + Gps.PrecisaoCm.ToString("0.00") + " cm";
|
lblGPSDetalhes.Text = $"{Gps.QualidadeFix} - {Gps.PrecisaoCm:F2} cm";
|
||||||
}
|
}
|
||||||
|
|
||||||
lblPerformance.Text = Variaveis.OperacaoEmAndamento.DadosPerformance.PerformanceStr;
|
lblPerformance.Text = Variaveis.OperacaoEmAndamento.DadosPerformance.PerformanceStr;
|
||||||
|
|
@ -87,8 +87,9 @@ namespace AgroBase.Forms
|
||||||
if (DalyBMSService.Iniciado)
|
if (DalyBMSService.Iniciado)
|
||||||
{
|
{
|
||||||
var Bat = DalyBMSService.DadosLeitura;
|
var Bat = DalyBMSService.DadosLeitura;
|
||||||
lblVBat.Text = $"Bateria: {Bat.Pack.TensaoTotal_V:0.00}V {Bat.Pack.Corrente_A:0.00}A {Bat.Pack.SOC_percent:0.00}% {Bat.TemperaturaMax:0.00}ºC";
|
lblVBat.Text = $"Bateria: {Bat.Pack.TensaoTotal_V:F2}V {Bat.Pack.Corrente_A:F2}A {Bat.Pack.SOC_percent:F2}% {Bat.TemperaturaMax:Fw}ºC";
|
||||||
}
|
}
|
||||||
|
lblVBat.ForeColor = DalyBMSService.Iniciado ? Color.Green : Color.Red;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AtualizarDadosSensorCorrente(string id, Label lbl)
|
private void AtualizarDadosSensorCorrente(string id, Label lbl)
|
||||||
|
|
|
||||||
|
|
@ -115,19 +115,34 @@ namespace AgroBase.Services
|
||||||
|
|
||||||
public void AtualizarConsumo(double distanciaTotalMetrosAtual)
|
public void AtualizarConsumo(double distanciaTotalMetrosAtual)
|
||||||
{
|
{
|
||||||
var Sensor = Variaveis.OperacaoEmAndamento.DispSen?.Dados?.Sensores?.FirstOrDefault(x => x.ID == "AB36V");
|
var DalyBms = DalyBMSService.DadosLeitura;
|
||||||
|
bool bms_iniciado = DalyBms?.Iniciado ?? false;
|
||||||
|
DateTime? bms_ultima_leitura = DalyBms?.UltimoComandoRecebido;
|
||||||
|
double bms_tensao = DalyBms?.Pack?.TensaoTotal_V ?? 0;
|
||||||
|
double bms_corrente = DalyBms?.Pack?.Corrente_A ?? 0;
|
||||||
|
double bms_potencia = bms_tensao * bms_corrente;
|
||||||
|
double bms_soc = DalyBms?.Pack?.SOC_percent ?? 0;
|
||||||
|
|
||||||
Iniciado = Sensor?.Inicializado ?? false;
|
var Sensor = Variaveis.OperacaoEmAndamento.DispSen?.Dados?.Sensores?.FirstOrDefault(x => x.ID == "AB36V");
|
||||||
|
bool sen_iniciado = Sensor?.Inicializado ?? false;
|
||||||
|
DateTime? sen_ultima_leitura = Sensor?.UltimaLeitura;
|
||||||
|
double sen_dt = Sensor?.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.dt ?? 0;
|
||||||
|
double sen_tensao = Sensor?.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.Tensao)?.atual?.valor ?? 0;
|
||||||
|
double sen_corrente = (Sensor?.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.valor ?? 0) / 1000.0;
|
||||||
|
double sen_potencia = Sensor?.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.Potencia)?.atual?.valor ?? 0;
|
||||||
|
double sen_soc = Math.Round(FuncoesMatematicas.Map(sen_tensao, VariaveisEquipamento.TensaoMinimaBateria, VariaveisEquipamento.TensaoMaximaBateria, 0.0, 100.0), 2);
|
||||||
|
|
||||||
|
Iniciado = bms_iniciado || sen_iniciado;
|
||||||
|
|
||||||
if (!Iniciado)
|
if (!Iniciado)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_dt = Sensor.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.dt ?? 0;
|
//_dt = Sensor.ValoresLeituras.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.dt ?? 0;
|
||||||
TensaoInstantanea = Sensor.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.Tensao)?.atual?.valor ?? 0;
|
_dt = (DateTime.Now - ((bms_iniciado ? bms_ultima_leitura : sen_ultima_leitura) ?? DateTime.Now)).TotalSeconds;
|
||||||
CorrenteInstantanea = (Sensor.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.Corrente)?.atual?.valor ?? 0) / 1000.0;
|
TensaoInstantanea = bms_iniciado ? bms_tensao : sen_tensao;
|
||||||
PotenciaInstantanea = Sensor.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.Potencia)?.atual?.valor ?? 0;
|
CorrenteInstantanea = bms_iniciado ? bms_corrente : sen_corrente;
|
||||||
|
PotenciaInstantanea = bms_iniciado ? bms_potencia : sen_potencia;
|
||||||
PercentualBateria = Math.Round(FuncoesMatematicas.Map(TensaoInstantanea, VariaveisEquipamento.TensaoMinimaBateria, VariaveisEquipamento.TensaoMaximaBateria, 0.0, 100.0), 2);
|
PercentualBateria = bms_iniciado ? bms_soc : sen_soc;
|
||||||
PercentualBateria = FuncoesMatematicas.Clamp(PercentualBateria, 0, 100);
|
PercentualBateria = FuncoesMatematicas.Clamp(PercentualBateria, 0, 100);
|
||||||
|
|
||||||
// Verifique se as datas são válidas (não MinValue, MaxValue ou valores anômalos)
|
// Verifique se as datas são válidas (não MinValue, MaxValue ou valores anômalos)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ using AgroBase.Services;
|
||||||
using AgroBase.Models;
|
using AgroBase.Models;
|
||||||
using static AgroBase.Models.Enums;
|
using static AgroBase.Models.Enums;
|
||||||
using OperationControl.Models;
|
using OperationControl.Models;
|
||||||
using System.Windows;
|
|
||||||
using Application = System.Windows.Application;
|
using Application = System.Windows.Application;
|
||||||
|
|
||||||
namespace OperationControl.Services
|
namespace OperationControl.Services
|
||||||
|
|
@ -266,6 +265,7 @@ namespace OperationControl.Services
|
||||||
if (!sucesso)
|
if (!sucesso)
|
||||||
{
|
{
|
||||||
Models.Variaveis.MostrarLog("Configurando módulo como base survery in...");
|
Models.Variaveis.MostrarLog("Configurando módulo como base survery in...");
|
||||||
|
BaseFix.fimProcesso = null;
|
||||||
BaseFix.inicioProcesso = DateTime.UtcNow;
|
BaseFix.inicioProcesso = DateTime.UtcNow;
|
||||||
await ConfigurarModuloBase(tempo_fixacao: TempoSurveryIn, porta_usb: "com3", porta_saida: "com3");
|
await ConfigurarModuloBase(tempo_fixacao: TempoSurveryIn, porta_usb: "com3", porta_saida: "com3");
|
||||||
BaseFix.inicioFix = DateTime.UtcNow;
|
BaseFix.inicioFix = DateTime.UtcNow;
|
||||||
|
|
|
||||||
|
|
@ -310,7 +310,7 @@ namespace OperationControl.Windows
|
||||||
var gpsService = Variaveis.GpsService;
|
var gpsService = Variaveis.GpsService;
|
||||||
lblDispositivos_Status.Content = VariaveisControleOperacao.StatusBase.ToString();
|
lblDispositivos_Status.Content = VariaveisControleOperacao.StatusBase.ToString();
|
||||||
AplicarStatusModuloNaLabel(lblDispositivos_Status, VariaveisControleOperacao.StatusBase, true, false);
|
AplicarStatusModuloNaLabel(lblDispositivos_Status, VariaveisControleOperacao.StatusBase, true, false);
|
||||||
double progresso = (gpsService?.BaseFix?.PosicaoBaseFixada ?? false) ? gpsService?.BaseFix?.Progresso ?? double.NaN : double.NaN;
|
double progresso = !(gpsService?.BaseFix?.PosicaoBaseFixada ?? false) ? gpsService?.BaseFix?.Progresso ?? double.NaN : double.NaN;
|
||||||
AtualizarDadosTela_GNSS(Variaveis.GpsService?.UltimaLeitura?.ToGnssModel() ?? new AgroBase.Models.Operacoes.OperacaoParametrosDadosGNSSModel(), marker_id: VariaveisControleOperacao.BaseMarkerID, progresso);
|
AtualizarDadosTela_GNSS(Variaveis.GpsService?.UltimaLeitura?.ToGnssModel() ?? new AgroBase.Models.Operacoes.OperacaoParametrosDadosGNSSModel(), marker_id: VariaveisControleOperacao.BaseMarkerID, progresso);
|
||||||
AtualizarDadosTela_Heading(Variaveis.GpsService?.UltimaLeitura?.AnguloCarroDefinido ?? 0);
|
AtualizarDadosTela_Heading(Variaveis.GpsService?.UltimaLeitura?.AnguloCarroDefinido ?? 0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue