Merge branch 'op_control' of http://zendioninc.com.br:3000/Zendion/agrobot_base into op_control
This commit is contained in:
commit
c0f539d5e2
|
|
@ -363,6 +363,11 @@ namespace AgroBase.Models
|
|||
DispAtu = AtuConectado,
|
||||
DispSen = SenConectado,
|
||||
DispMvd = MvdConectado,
|
||||
Simulando = false,
|
||||
Mapa = new MapasModel(),
|
||||
GPSTrajetoria = new List<GPSModel>(),
|
||||
Sensoriamento = new OperacaoSensoriamentoLogModel(),
|
||||
Trajetoria = new TrajetoriaMapaOperacaoModel(new List<List<GPSModel>>())
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -835,8 +840,6 @@ namespace AgroBase.Models
|
|||
{
|
||||
Variaveis.OperacaoEmAndamento.Parametros = p;
|
||||
Variaveis.OperacaoEmAndamento.DefinirComponentesEmUso();
|
||||
Variaveis.OperacaoEmAndamento.Trajetoria = new TrajetoriaMapaOperacaoModel(new List<List<GPSModel>>());
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento = new OperacaoSensoriamentoLogModel();
|
||||
RedisService.AtualizarCampos(CtxKey.DadosOperacao, ("configurado", false));
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.AtualizarDados();
|
||||
}
|
||||
|
|
@ -986,6 +989,7 @@ namespace AgroBase.Models
|
|||
p.Controle = Parametros.Controle;
|
||||
p.QtdBicos = Parametros.QtdBicos;
|
||||
p.QtdCamerasSolo = Parametros.QtdCamerasSolo;
|
||||
p.Mapa = Parametros.Mapa;
|
||||
p.RuasPercorrer = Parametros.RuasPercorrer;
|
||||
p.ModulosMandatorios = Parametros.ModulosMandatorios;
|
||||
p.ParametrosMandatorios = Parametros.ParametrosMandatorios;
|
||||
|
|
@ -1077,6 +1081,20 @@ namespace AgroBase.Models
|
|||
Variaveis.OperacaoEmAndamento.Trajetoria?.AutonomiaCorredor?.Parar();
|
||||
}
|
||||
|
||||
public void ReiniciarOperacao(bool daBase)
|
||||
{
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosOperacao,
|
||||
("status", StatusOperacao.Parametrizando),
|
||||
("iniciado", false)
|
||||
);
|
||||
|
||||
CarregarParamerosOperacaoBase(Variaveis.OperacaoEmAndamento.Parametros);
|
||||
|
||||
if (daBase)
|
||||
EnviarParametorsOperacao();
|
||||
}
|
||||
|
||||
public async Task RealizarCalibragemInicialAsync(bool forcar)
|
||||
{
|
||||
bool modsCalibrados = Variaveis.OperacaoEmAndamento.ModsCalibragem.All(x => x.Value.Values.Count > 0 && x.Value.Values.All(y => y == true));
|
||||
|
|
@ -1177,17 +1195,7 @@ namespace AgroBase.Models
|
|||
|
||||
public void ReiniciarSimulacao()
|
||||
{
|
||||
RedisService.AtualizarCampos(
|
||||
CtxKey.DadosOperacao,
|
||||
("status", StatusOperacao.Parametrizando),
|
||||
("iniciado", false)
|
||||
);
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Iniciado = false;
|
||||
Variaveis.OperacaoEmAndamento.Simulando = false;
|
||||
Variaveis.OperacaoEmAndamento.Mapa = new MapasModel();
|
||||
Variaveis.OperacaoEmAndamento.Trajetoria = new TrajetoriaMapaOperacaoModel(new List<List<GPSModel>>());
|
||||
Variaveis.OperacaoEmAndamento.GPSTrajetoria = new List<GPSModel>();
|
||||
ReiniciarOperacao(false);
|
||||
|
||||
var Topico = Variaveis.MqttServiceLocal.Topicos.FirstOrDefault(x => x.Topico == MapasVariaveisModel.TopicoSelecaoRuasMapa);
|
||||
Topico.Mensagens.Add(new MqttService.MqttTopicosMensagensModel()
|
||||
|
|
@ -1488,22 +1496,29 @@ namespace AgroBase.Models
|
|||
}
|
||||
}
|
||||
|
||||
private void EnviarParametorsOperacao()
|
||||
{
|
||||
var topico = Variaveis.MqttServiceBase.Topicos.FirstOrDefault(x => x.Topico == VariaveisEquipamento.TopicoMqttParametros.Replace("<id>", VariaveisEquipamento.Parametros.serial_number));
|
||||
var p = Variaveis.OperacaoEmAndamento.Parametros;
|
||||
string msg = JsonConvert.SerializeObject(p);
|
||||
Task.Run(async () => await Variaveis.MqttServiceBase.PublishAsync(topico, msg));
|
||||
}
|
||||
|
||||
public void ExecutaComandoDaBase(OperacaoComandoBaseModel controleBase)
|
||||
{
|
||||
if (controleBase.Dispositivo == T_Code.Mod)
|
||||
{
|
||||
var _Parametros = controleBase.Parametros;
|
||||
|
||||
|
||||
switch (controleBase.Tecla)
|
||||
{
|
||||
case BotoesJoystick.Share: // Requisitar parametros da operacao
|
||||
var topico = Variaveis.MqttServiceBase.Topicos.FirstOrDefault(x => x.Topico == VariaveisEquipamento.TopicoMqttParametros.Replace("<id>", VariaveisEquipamento.Parametros.serial_number));
|
||||
var p = Variaveis.OperacaoEmAndamento.Parametros;
|
||||
string msg = JsonConvert.SerializeObject(p);
|
||||
Task.Run(async () => await Variaveis.MqttServiceBase.PublishAsync(topico, msg));
|
||||
EnviarParametorsOperacao();
|
||||
break;
|
||||
case BotoesJoystick.Options: // Operacao nao iniciada, carrega todos os parametros compeltos
|
||||
Variaveis.OperacaoEmAndamento.CarregarParamerosOperacaoBase(_Parametros);
|
||||
EnviarParametorsOperacao();
|
||||
break;
|
||||
case BotoesJoystick.Touchpad: // Operacao em andamento, atualiza apenas os dados de controle
|
||||
if (_Parametros.Modo != null) Variaveis.OperacaoEmAndamento.Parametros.Modo = _Parametros.Modo;
|
||||
|
|
@ -1521,6 +1536,7 @@ namespace AgroBase.Models
|
|||
}
|
||||
|
||||
HealthWorkerService.AtualizarDadosOperacao(true);
|
||||
EnviarParametorsOperacao();
|
||||
break;
|
||||
case BotoesJoystick.L1: // Inicia o modo simulador
|
||||
if (!Variaveis.OperacaoEmAndamento.Iniciado)
|
||||
|
|
@ -1533,6 +1549,8 @@ namespace AgroBase.Models
|
|||
case BotoesJoystick.L3: // Finaliza a operacao
|
||||
if (Variaveis.OperacaoEmAndamento.Iniciado)
|
||||
Task.Run(async () => await Variaveis.OperacaoEmAndamento.FinalizarOperacao());
|
||||
else
|
||||
ReiniciarOperacao(true);
|
||||
break;
|
||||
case BotoesJoystick.R1: // Libera a operacao interrompida mediante supervisao humana
|
||||
if (!(Variaveis.OperacaoEmAndamento.Trajetoria?.AutonomiaCorredor?.Liberado ?? false))
|
||||
|
|
@ -2592,8 +2610,8 @@ namespace AgroBase.Models
|
|||
DadosPerformance = dadosPerformance,
|
||||
DadosLoRa = dadosLora,
|
||||
LivoxLidar = dadosLivox,
|
||||
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>(Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios),
|
||||
ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>(Variaveis.OperacaoEmAndamento.Parametros.ParametrosMandatorios),
|
||||
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>(Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios ?? new List<OperacaoModulosMandatoriosModel>()),
|
||||
ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>(Variaveis.OperacaoEmAndamento.Parametros.ParametrosMandatorios ?? new List<OperacaoParametrosMandatoriosModel>()),
|
||||
ModulosSaude = HealthWorkerService.ModulosSaude.ToList(),
|
||||
DispositivosMapeados = new List<DispositivoDetalhesModel>(SerialService.DispositivosMapeados),
|
||||
ModsCalibragem = new Dictionary<T_Code, Dictionary<string, bool>>(Variaveis.OperacaoEmAndamento.ModsCalibragem),
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ namespace AgroBase.Models.Operadores
|
|||
StatusCarro = Sonar?.Analises?.segmentacao?.status_corredor ?? StatusCarroMapa.Indefinido;
|
||||
ErroLateral = Sonar?.Analises?.segmentacao?.erro_angular ?? 0;
|
||||
|
||||
if (!Variaveis.OperacaoEmAndamento.Parametros.Controle.SonarAtivado)
|
||||
if (!Variaveis.OperacaoEmAndamento.Parametros.Controle?.SonarAtivado ?? false)
|
||||
{
|
||||
_comandoParadaEnviado = false;
|
||||
DeveParar = false;
|
||||
|
|
@ -83,7 +83,7 @@ namespace AgroBase.Models.Operadores
|
|||
Direcao _ultimaDirecaoControle = Variaveis.OperacaoEmAndamento.Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Mov)?.UltimaDirecao ?? Direcao.Parado;
|
||||
bool _carroEmMovimento = _direcoesInterromperMovimento.Contains(_ultimaDirecaoControle);
|
||||
bool emMovimento = consideraEmMovimento ? _carroEmMovimento : true;
|
||||
DeveParar = Sonar.Status == StatusModulo.Operante && ObstaculoDetectado;
|
||||
DeveParar = Sonar?.Status == StatusModulo.Operante && ObstaculoDetectado;
|
||||
EnviarComandoParada = DeveParar && emMovimento;
|
||||
if (EnviarComandoParada)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue