ajustes de fluxo
This commit is contained in:
parent
23852cd6c4
commit
bc9fc9a0b8
|
|
@ -1636,9 +1636,9 @@ namespace AgroBase.Forms.Operacoes
|
||||||
|
|
||||||
var logVent = LogsOperacao[idxMomentoAtual].CoolerControl;
|
var logVent = LogsOperacao[idxMomentoAtual].CoolerControl;
|
||||||
lblVentilacaoModo.Text = $"Modo: {logVent?.Modo ?? CoolerControlService.CoolerMode.Off}";
|
lblVentilacaoModo.Text = $"Modo: {logVent?.Modo ?? CoolerControlService.CoolerMode.Off}";
|
||||||
lblVentilacaoModo.Text = $"Temperatura: {logVent?.Temperatura ?? 0:F2} ºC";
|
lblVentilacaoTemperatura.Text = $"Temperatura: {logVent?.Temperatura ?? 0:F2} ºC";
|
||||||
lblVentilacaoRLIN.Text = $"RLIN: {logVent?.EstadoEntrada ?? Enums.Estado.Desligado} ({logVent?.LeituraEntrada ?? Enums.Estado.Desligado})";
|
lblVentilacaoRLIN.Text = $"RLIN: {logVent?.EstadoEntrada ?? Enums.Estado.Desligado} ({logVent?.LeituraEntrada ?? Enums.Estado.Desligado})";
|
||||||
lblVentilacaoRLIN.Text = $"RLOUT: {logVent?.EstadoSaida ?? Enums.Estado.Desligado} ({logVent?.LeituraSaida ?? Enums.Estado.Desligado})";
|
lblVentilacaoRLOUT.Text = $"RLOUT: {logVent?.EstadoSaida ?? Enums.Estado.Desligado} ({logVent?.LeituraSaida ?? Enums.Estado.Desligado})";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AtualizarInformacoesComandos()
|
private void AtualizarInformacoesComandos()
|
||||||
|
|
|
||||||
|
|
@ -740,14 +740,17 @@ namespace AgroBase
|
||||||
|
|
||||||
public static void EnviarComandoAtuador(S_Code Componente, string ID, bool? Status = null, double? Valor = null, bool Forcar = false)
|
public static void EnviarComandoAtuador(S_Code Componente, string ID, bool? Status = null, double? Valor = null, bool Forcar = false)
|
||||||
{
|
{
|
||||||
|
var DispAtu = Variaveis.OperacaoEmAndamento.DispAtu;
|
||||||
|
if (!DispAtu.Dados.Conectado)
|
||||||
|
return;
|
||||||
|
|
||||||
if (!Forcar)
|
if (!Forcar)
|
||||||
{
|
{
|
||||||
if (!Variaveis.OperacaoEmAndamento.Iniciado) return;
|
if (!Variaveis.OperacaoEmAndamento.Iniciado) return;
|
||||||
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Atu && x.ComponentesEmUso[ID].Item2);
|
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Atu && x.ComponentesEmUso != null && x.ComponentesEmUso[ID].Item2);
|
||||||
if (!componente_em_uso && (Status ?? false)) return; // Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
if (!componente_em_uso && (Status ?? false)) return; // Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
||||||
}
|
}
|
||||||
|
|
||||||
var DispAtu = Variaveis.OperacaoEmAndamento.DispAtu;
|
|
||||||
int id_num = -1;
|
int id_num = -1;
|
||||||
CanMessagePosicaoDados posicao = CanMessagePosicaoDados.Command1;
|
CanMessagePosicaoDados posicao = CanMessagePosicaoDados.Command1;
|
||||||
byte[] data = null;
|
byte[] data = null;
|
||||||
|
|
@ -794,9 +797,13 @@ namespace AgroBase
|
||||||
|
|
||||||
public static void EnviarComandoSensoriamento(S_Code Componente, string ID, dynamic Status, bool Forcar = false)
|
public static void EnviarComandoSensoriamento(S_Code Componente, string ID, dynamic Status, bool Forcar = false)
|
||||||
{
|
{
|
||||||
|
var DispSen = Variaveis.OperacaoEmAndamento.DispSen;
|
||||||
|
if (!DispSen.Dados.Conectado)
|
||||||
|
return;
|
||||||
|
|
||||||
if (!Forcar)
|
if (!Forcar)
|
||||||
{
|
{
|
||||||
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Sen && x.ComponentesEmUso[ID].Item2);
|
bool componente_em_uso = Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Sen && x.ComponentesEmUso != null && x.ComponentesEmUso[ID].Item2);
|
||||||
if (!componente_em_uso)
|
if (!componente_em_uso)
|
||||||
{
|
{
|
||||||
// Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
// Impede execucao de comandos que liguem componentes quando estiver marcado para nao utilizar
|
||||||
|
|
@ -805,8 +812,6 @@ namespace AgroBase
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var DispSen = Variaveis.OperacaoEmAndamento.DispSen;
|
|
||||||
|
|
||||||
int id_num = -1;
|
int id_num = -1;
|
||||||
CanMessagePosicaoDados posicao = CanMessagePosicaoDados.Command1;
|
CanMessagePosicaoDados posicao = CanMessagePosicaoDados.Command1;
|
||||||
byte[] data = null;
|
byte[] data = null;
|
||||||
|
|
|
||||||
|
|
@ -858,33 +858,33 @@ namespace AgroBase.Models
|
||||||
case T_Code.Mov:
|
case T_Code.Mov:
|
||||||
if (Variaveis.OperacaoEmAndamento.DispMvd != null)
|
if (Variaveis.OperacaoEmAndamento.DispMvd != null)
|
||||||
{
|
{
|
||||||
Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.ForEach(m => d.Add(m.MovMotor.Mod_ID, (true, m.MovMotor.Comandar)));
|
Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos?.ForEach(m => d.Add(m.MovMotor.Mod_ID, (true, m.MovMotor.Comandar)));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case T_Code.Dir:
|
case T_Code.Dir:
|
||||||
if (Variaveis.OperacaoEmAndamento.DispMvd != null)
|
if (Variaveis.OperacaoEmAndamento.DispMvd != null)
|
||||||
{
|
{
|
||||||
Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.ForEach(m => d.Add(m.DirMotor.Mod_ID, (true, m.DirMotor.Comandar)));
|
Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos?.ForEach(m => d.Add(m.DirMotor.Mod_ID, (true, m.DirMotor.Comandar)));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case T_Code.Atu:
|
case T_Code.Atu:
|
||||||
if (Variaveis.OperacaoEmAndamento.DispAtu != null)
|
if (Variaveis.OperacaoEmAndamento.DispAtu != null)
|
||||||
{
|
{
|
||||||
var da = Variaveis.OperacaoEmAndamento.DispAtu.Dados;
|
var da = Variaveis.OperacaoEmAndamento.DispAtu.Dados;
|
||||||
da.Sensores.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir)));
|
da.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir)));
|
||||||
da.BombasPressurizadoras.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar)));
|
da.BombasPressurizadoras?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar)));
|
||||||
da.BicosPulverizadores.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar)));
|
da.BicosPulverizadores?.ForEach(b => d.Add(b.ID, (b.Mandatorio, b.Comandar)));
|
||||||
da.Servos.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
|
da.Servos?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case T_Code.Sen:
|
case T_Code.Sen:
|
||||||
if (Variaveis.OperacaoEmAndamento.DispSen != null)
|
if (Variaveis.OperacaoEmAndamento.DispSen != null)
|
||||||
{
|
{
|
||||||
var ds = Variaveis.OperacaoEmAndamento.DispSen.Dados;
|
var ds = Variaveis.OperacaoEmAndamento.DispSen.Dados;
|
||||||
ds.Sensores.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir)));
|
ds.Sensores?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Aferir)));
|
||||||
ds.Sinaleiros.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
|
ds.Sinaleiros?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
|
||||||
ds.Servos.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
|
ds.Servos?.ForEach(s => d.Add(s.ID, (s.Mandatorio, s.Controlar)));
|
||||||
ds.Reles.ForEach(r => d.Add(r.ID, (r.Mandatorio, r.Controlar)));
|
ds.Reles?.ForEach(r => d.Add(r.ID, (r.Mandatorio, r.Controlar)));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ namespace AgroBase.Services
|
||||||
// Estado interno
|
// Estado interno
|
||||||
public CoolerMode ModoAtual { get; private set; } = CoolerMode.Off;
|
public CoolerMode ModoAtual { get; private set; } = CoolerMode.Off;
|
||||||
public Estado CoolerEntradaEstado { get; private set; } = Estado.Desligado;
|
public Estado CoolerEntradaEstado { get; private set; } = Estado.Desligado;
|
||||||
|
public Estado CoolerEntradaEstadoAnterior { get; private set; } = Estado.Desligado;
|
||||||
public Estado CoolerSaidaEstado { get; private set; } = Estado.Desligado;
|
public Estado CoolerSaidaEstado { get; private set; } = Estado.Desligado;
|
||||||
public Estado CoolerEntradaLeitura => ReleCoolerEntrada?.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.EstadoLeitura)?.atual?.valor ?? Estado.Desligado;
|
public Estado CoolerSaidaEstadoAnterior { get; private set; } = Estado.Desligado;
|
||||||
public Estado CoolerSaidaLeitura => ReleCoolerSaida?.ValoresLeituras?.FirstOrDefault(x => x.funcao == FuncoesPinout.EstadoLeitura)?.atual?.valor ?? Estado.Desligado;
|
|
||||||
|
|
||||||
public double? TemperaturaFiltrada { get; private set; }
|
public double? TemperaturaFiltrada { get; private set; }
|
||||||
public DateTime UltimaMudancaModo { get; private set; } = DateTime.MinValue;
|
public DateTime UltimaMudancaModo { get; private set; } = DateTime.MinValue;
|
||||||
|
|
@ -103,6 +103,19 @@ namespace AgroBase.Services
|
||||||
{
|
{
|
||||||
Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Alerta, 50, "Temperatura limite excedida no NPC");
|
Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Alerta, 50, "Temperatura limite excedida no NPC");
|
||||||
}
|
}
|
||||||
|
else if (_alertaAnterior && !AlertaTemperaturaCritica)
|
||||||
|
{
|
||||||
|
Variaveis.OperacaoEmAndamento.Sensoriamento?.InserirLog(T_Code.Npc, StatusModulo.Alerta, 100, "Temperatura limite recuperada no NPC");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Variaveis.Fechando)
|
||||||
|
{
|
||||||
|
ModoAtual = CoolerMode.Off;
|
||||||
|
CoolerEntradaEstado = Estado.Desligado;
|
||||||
|
CoolerSaidaEstado = Estado.Desligado;
|
||||||
|
EnviarComando();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ModoAtual == CoolerMode.Manual)
|
if (ModoAtual == CoolerMode.Manual)
|
||||||
return;
|
return;
|
||||||
|
|
@ -140,9 +153,6 @@ namespace AgroBase.Services
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Variaveis.Fechando)
|
|
||||||
novoModo = CoolerMode.Off;
|
|
||||||
|
|
||||||
CoolerEntradaEstado = novoModo == CoolerMode.IntakeAndExhaust ? Estado.Ligado : Estado.Desligado;
|
CoolerEntradaEstado = novoModo == CoolerMode.IntakeAndExhaust ? Estado.Ligado : Estado.Desligado;
|
||||||
CoolerSaidaEstado = novoModo == CoolerMode.ExhaustOnly || novoModo == CoolerMode.IntakeAndExhaust ? Estado.Ligado : Estado.Desligado;
|
CoolerSaidaEstado = novoModo == CoolerMode.ExhaustOnly || novoModo == CoolerMode.IntakeAndExhaust ? Estado.Ligado : Estado.Desligado;
|
||||||
|
|
||||||
|
|
@ -157,10 +167,16 @@ namespace AgroBase.Services
|
||||||
|
|
||||||
private void EnviarComando()
|
private void EnviarComando()
|
||||||
{
|
{
|
||||||
if (ReleCoolerEntrada != null && ReleCoolerEntrada._EstadoLeitura != CoolerEntradaEstado)
|
if (ReleCoolerEntrada != null && CoolerEntradaEstadoAnterior != CoolerEntradaEstado)
|
||||||
|
{
|
||||||
GeneralJoystick.EnviarComandoSensoriamento(ReleCoolerEntrada.Componente, ReleCoolerEntrada.ID, CoolerEntradaEstado);
|
GeneralJoystick.EnviarComandoSensoriamento(ReleCoolerEntrada.Componente, ReleCoolerEntrada.ID, CoolerEntradaEstado);
|
||||||
if (ReleCoolerSaida != null && ReleCoolerSaida._EstadoLeitura != CoolerSaidaEstado)
|
CoolerEntradaEstadoAnterior = CoolerEntradaEstado;
|
||||||
|
}
|
||||||
|
if (ReleCoolerSaida != null && CoolerSaidaEstadoAnterior != CoolerSaidaEstado)
|
||||||
|
{
|
||||||
GeneralJoystick.EnviarComandoSensoriamento(ReleCoolerSaida.Componente, ReleCoolerSaida.ID, CoolerSaidaEstado);
|
GeneralJoystick.EnviarComandoSensoriamento(ReleCoolerSaida.Componente, ReleCoolerSaida.ID, CoolerSaidaEstado);
|
||||||
|
CoolerSaidaEstadoAnterior = CoolerSaidaEstado;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CoolerControlDataModel GetResumo()
|
public CoolerControlDataModel GetResumo()
|
||||||
|
|
@ -173,8 +189,8 @@ namespace AgroBase.Services
|
||||||
TemperaturaTurbo = TempTurbo,
|
TemperaturaTurbo = TempTurbo,
|
||||||
EstadoEntrada = CoolerEntradaEstado,
|
EstadoEntrada = CoolerEntradaEstado,
|
||||||
EstadoSaida = CoolerSaidaEstado,
|
EstadoSaida = CoolerSaidaEstado,
|
||||||
LeituraEntrada = CoolerEntradaLeitura,
|
LeituraEntrada = ReleCoolerEntrada?._EstadoLeitura ?? Estado.Desligado,
|
||||||
LeituraSaida = CoolerSaidaLeitura,
|
LeituraSaida = ReleCoolerSaida?._EstadoLeitura ?? Estado.Desligado,
|
||||||
Temperatura = TemperaturaFiltrada ?? 0,
|
Temperatura = TemperaturaFiltrada ?? 0,
|
||||||
Alerta = AlertaTemperaturaCritica
|
Alerta = AlertaTemperaturaCritica
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1296,6 +1296,8 @@ namespace AgroBase.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AtualizaDadosRedis()
|
public static void AtualizaDadosRedis()
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
GPSModel posicaoAtual = Variaveis.OperacaoEmAndamento.Simulando ? historicoPosicao.Peek() : UltimaLeitura;
|
GPSModel posicaoAtual = Variaveis.OperacaoEmAndamento.Simulando ? historicoPosicao.Peek() : UltimaLeitura;
|
||||||
|
|
||||||
|
|
@ -1320,6 +1322,11 @@ namespace AgroBase.Services
|
||||||
("heartbeat", posicaoAtual.Heartbeat)
|
("heartbeat", posicaoAtual.Heartbeat)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Erro ao salvar dados do GPS no Redis: {e.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static Queue<GPSModel> historicoPosicao = new Queue<GPSModel>();
|
public static Queue<GPSModel> historicoPosicao = new Queue<GPSModel>();
|
||||||
public static void AtualizarAtrasoPosicoes(int errosConsiderar = 0)
|
public static void AtualizarAtrasoPosicoes(int errosConsiderar = 0)
|
||||||
|
|
|
||||||
|
|
@ -146,10 +146,10 @@ namespace AgroBase.Services.Operadores
|
||||||
dist_dir = _t.DistanciaDireita,
|
dist_dir = _t.DistanciaDireita,
|
||||||
angulo = _t.AnguloMedioCorredor,
|
angulo = _t.AnguloMedioCorredor,
|
||||||
pontos_restantes = _t.CorredorAtual.QtdPontos - pontoComparar.idxPontoCorredor,
|
pontos_restantes = _t.CorredorAtual.QtdPontos - pontoComparar.idxPontoCorredor,
|
||||||
liberado = _t.AutonomiaCooredor?.Liberado ?? false,
|
//liberado = _t.AutonomiaCooredor?.Liberado ?? false,
|
||||||
motivo = _t.AutonomiaCooredor?.Motivo ?? "",
|
//motivo = _t.AutonomiaCooredor?.Motivo ?? "",
|
||||||
bateria_ok = _t.AutonomiaCooredor?.BateriaSuficiente ?? false,
|
//bateria_ok = _t.AutonomiaCooredor?.BateriaSuficiente ?? false,
|
||||||
herbicida_ok = _t.AutonomiaCooredor?.HerbicidaSuficiente ?? false
|
//herbicida_ok = _t.AutonomiaCooredor?.HerbicidaSuficiente ?? false
|
||||||
},
|
},
|
||||||
} : null
|
} : null
|
||||||
),
|
),
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue