Ajustes camera e carregamento de parametros operacao padrao
This commit is contained in:
parent
88d5ac701e
commit
286e5a62c4
|
|
@ -44,7 +44,7 @@ namespace AgroBase.Forms.IHM
|
|||
});
|
||||
FuncoesGlobais.DefinirEventosPicBtn(picManual, "Erro ao carregar modo de controle manual!", async () =>
|
||||
{
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.Manual);
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.Manual, true);
|
||||
if (Variaveis.OperacaoEmAndamento.OperacaoLiberada)
|
||||
{
|
||||
frmDialogoMapa frm = new frmDialogoMapa();
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ namespace AgroBase
|
|||
|
||||
private void cmbModoOperacao_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao((ModoOperacao)cmbModoOperacao.SelectedIndex);
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao((ModoOperacao)cmbModoOperacao.SelectedIndex, true);
|
||||
}
|
||||
|
||||
private void btnIniciarOperacao_Click(object sender, EventArgs e)
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@ namespace AgroBase.Models
|
|||
|
||||
if (Parametros.Modo == null) return (false, new List<string>());
|
||||
|
||||
CarregarParametrosOperacaoPadrao((ModoOperacao)Parametros.Modo);
|
||||
CarregarParametrosOperacaoPadrao((ModoOperacao)Parametros.Modo, true);
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Parametros = Parametros;
|
||||
|
||||
|
|
@ -333,521 +333,512 @@ namespace AgroBase.Models
|
|||
}
|
||||
|
||||
|
||||
public static void CarregarParametrosOperacaoPadrao(ModoOperacao Modo)
|
||||
public static OperacaoParametrosModel CarregarParametrosOperacaoPadrao(ModoOperacao Modo, bool isagrobase)
|
||||
{
|
||||
var SenConectado = (DispositivosService<SensoriamentoModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Sen);
|
||||
var AtuConectado = (DispositivosService<AtuadorModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Atu);
|
||||
var MvdConectado = (DispositivosService<MovimentacaoUnificadaModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Mvd);
|
||||
|
||||
tmrLogs?.Stop();
|
||||
|
||||
Variaveis.OperacaoEmAndamento = new OperacaoModel(Modo)
|
||||
OperacaoParametrosModel p = new OperacaoParametrosModel()
|
||||
{
|
||||
Iniciado = false,
|
||||
DataInicio = DateTime.MinValue,
|
||||
DataFim = DateTime.MinValue,
|
||||
DispAtu = AtuConectado,
|
||||
DispSen = SenConectado,
|
||||
DispMvd = MvdConectado,
|
||||
Modo = Modo,
|
||||
QtdCamerasSolo = VariaveisEquipamento.QuantidadeCamerasSolo,
|
||||
QtdBicos = VariaveisEquipamento.QuantidadeBicosPulverizadores,
|
||||
CapacidadeReservatorio = VariaveisEquipamento.CapacidadeReservatorio,
|
||||
RoverId = VariaveisEquipamento.Parametros.serial_number,
|
||||
RuasPercorrer = null,
|
||||
Mapa = null,
|
||||
DadosLeitura = new OperacaoParametrosDadosModel(),
|
||||
};
|
||||
|
||||
if (isagrobase)
|
||||
{
|
||||
var SenConectado = (DispositivosService<SensoriamentoModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Sen);
|
||||
var AtuConectado = (DispositivosService<AtuadorModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Atu);
|
||||
var MvdConectado = (DispositivosService<MovimentacaoUnificadaModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Mvd);
|
||||
tmrLogs?.Stop();
|
||||
Variaveis.OperacaoEmAndamento = new OperacaoModel(Modo)
|
||||
{
|
||||
Iniciado = false,
|
||||
DataInicio = DateTime.MinValue,
|
||||
DataFim = DateTime.MinValue,
|
||||
DispAtu = AtuConectado,
|
||||
DispSen = SenConectado,
|
||||
DispMvd = MvdConectado,
|
||||
};
|
||||
}
|
||||
|
||||
switch (Modo)
|
||||
{
|
||||
case ModoOperacao.Manual:
|
||||
Variaveis.OperacaoEmAndamento.Parametros = new OperacaoParametrosModel()
|
||||
p.Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
Modo = Modo,
|
||||
QtdCamerasSolo = VariaveisEquipamento.QuantidadeCamerasSolo,
|
||||
QtdBicos = VariaveisEquipamento.QuantidadeBicosPulverizadores,
|
||||
CapacidadeReservatorio = VariaveisEquipamento.CapacidadeReservatorio,
|
||||
RoverId = VariaveisEquipamento.Parametros.serial_number,
|
||||
RuasPercorrer = null,
|
||||
Mapa = null,
|
||||
Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
MovimentoAutomatico = false,
|
||||
DirecionalAutomatico = false,
|
||||
PulverizadorAutomatico = false,
|
||||
FrenagemAutomaticaAoParar = true,
|
||||
MovVelocidadeSErvasPercent = 100,
|
||||
MovVelocidadeCErvasPercent = 15,
|
||||
DirAnguloMaximo = 25,
|
||||
DirVelocidadeMovimento = 40,
|
||||
SonarAtivado = false,
|
||||
DirTipoMovimento = TiposControladorDirecional.Manual,
|
||||
RegistrarDadosPosProcessamento = false,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
},
|
||||
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
MovimentoAutomatico = false,
|
||||
DirecionalAutomatico = false,
|
||||
PulverizadorAutomatico = false,
|
||||
|
||||
SonarAtivado = false,
|
||||
FrenagemAutomaticaAoParar = false,
|
||||
ImuParadaPorInclinacao = false,
|
||||
OakParadaPorObstaculo = false,
|
||||
MpcMatrizCusto = false,
|
||||
MpcHorizonte = 4.0,
|
||||
|
||||
MovVelocidadeSErvasPercent = 100,
|
||||
MovVelocidadeCErvasPercent = 15,
|
||||
DirAnguloMaximo = 25,
|
||||
DirVelocidadeMovimento = 40,
|
||||
|
||||
DirTipoMovimento = TiposControladorDirecional.Manual,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
};
|
||||
p.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
{
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Atu,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
}
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
},
|
||||
ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Joystick,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
},
|
||||
//new OperacaoParametrosMandatoriosModel()
|
||||
//{
|
||||
// Parametro = ParametrosOperacao.LoRa,
|
||||
// Mandatorio = false,
|
||||
// Utilizar = true,
|
||||
//},
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Atu,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
}
|
||||
};
|
||||
Variaveis.OperacaoEmAndamento.frmOperacao = new frmOperacaoManual();
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
p.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 25,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 20,
|
||||
AlturaBarra = 50,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 10,
|
||||
DelayEnvioComando = 10,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 10,
|
||||
DelayEnvioComando = 10,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Atu,
|
||||
DelayEnvioComandoBase = 10,
|
||||
DelayEnvioComando = 10,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
Parametro = ParametrosOperacao.Joystick,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
},
|
||||
};
|
||||
if (isagrobase)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.frmOperacao = new frmOperacaoManual();
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 25,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 20,
|
||||
AlturaBarra = 50,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 10,
|
||||
DelayEnvioComando = 10,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 10,
|
||||
DelayEnvioComando = 10,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Atu,
|
||||
DelayEnvioComandoBase = 10,
|
||||
DelayEnvioComando = 10,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
break;
|
||||
case ModoOperacao.MapaGPS:
|
||||
Variaveis.OperacaoEmAndamento.Parametros = new OperacaoParametrosModel()
|
||||
p.Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
Modo = Modo,
|
||||
QtdCamerasSolo = VariaveisEquipamento.QuantidadeCamerasSolo,
|
||||
QtdBicos = VariaveisEquipamento.QuantidadeBicosPulverizadores,
|
||||
CapacidadeReservatorio = VariaveisEquipamento.CapacidadeReservatorio,
|
||||
RoverId = VariaveisEquipamento.Parametros.serial_number,
|
||||
RuasPercorrer = null,
|
||||
Mapa = null,
|
||||
Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
MovimentoAutomatico = true,
|
||||
DirecionalAutomatico = true,
|
||||
PulverizadorAutomatico = true,
|
||||
FrenagemAutomaticaAoParar = true,
|
||||
MovVelocidadeSErvasPercent = 50,
|
||||
MovVelocidadeCErvasPercent = 20,
|
||||
DirAnguloMaximo = 30,
|
||||
DirVelocidadeMovimento = 50,
|
||||
SonarAtivado = true,
|
||||
DirTipoMovimento = TiposControladorDirecional.MPC,
|
||||
RegistrarDadosPosProcessamento = false,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
},
|
||||
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
{
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Sen,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Atu,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Gps,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Cam,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Snr,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Lvx,
|
||||
Mandatorio = false,
|
||||
Utilizar = true,
|
||||
}
|
||||
},
|
||||
ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
{
|
||||
//new OperacaoParametrosMandatoriosModel()
|
||||
//{
|
||||
// Parametro = ParametrosOperacao.CameraSolo,
|
||||
// Mandatorio = true,
|
||||
// Utilizar = true,
|
||||
//},
|
||||
//new OperacaoParametrosMandatoriosModel()
|
||||
//{
|
||||
// Parametro = ParametrosOperacao.Sonar,
|
||||
// Mandatorio = false,
|
||||
// Utilizar = true,
|
||||
//},
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Mapa,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
//new OperacaoParametrosMandatoriosModel()
|
||||
//{
|
||||
// Parametro = ParametrosOperacao.LoRa,
|
||||
// Mandatorio = true,
|
||||
// Utilizar = true,
|
||||
//}
|
||||
}
|
||||
MovimentoAutomatico = true,
|
||||
DirecionalAutomatico = true,
|
||||
PulverizadorAutomatico = true,
|
||||
|
||||
SonarAtivado = false,
|
||||
FrenagemAutomaticaAoParar = true,
|
||||
ImuParadaPorInclinacao = true,
|
||||
OakParadaPorObstaculo = true,
|
||||
MpcMatrizCusto = false,
|
||||
MpcHorizonte = 4.0,
|
||||
|
||||
MovVelocidadeSErvasPercent = 50,
|
||||
MovVelocidadeCErvasPercent = 20,
|
||||
DirAnguloMaximo = 30,
|
||||
DirVelocidadeMovimento = 50,
|
||||
|
||||
DirTipoMovimento = TiposControladorDirecional.MPC,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
};
|
||||
Variaveis.OperacaoEmAndamento.frmOperacao = new frmOperacaoMapaGPS();
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
p.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 0,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 0,
|
||||
AlturaBarra = 50,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 300,
|
||||
DelayEnvioComando = 300,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Atu,
|
||||
DelayEnvioComandoBase = 200,
|
||||
DelayEnvioComando = 200,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Sen,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Atu,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Gps,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Cam,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Snr,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
};
|
||||
p.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
{
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Mapa,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
};
|
||||
if (isagrobase)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.frmOperacao = new frmOperacaoMapaGPS();
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 0,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 0,
|
||||
AlturaBarra = 50,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 300,
|
||||
DelayEnvioComando = 300,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Atu,
|
||||
DelayEnvioComandoBase = 200,
|
||||
DelayEnvioComando = 200,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
break;
|
||||
case ModoOperacao.TreinamentoIA:
|
||||
Variaveis.OperacaoEmAndamento.Parametros = new OperacaoParametrosModel()
|
||||
p.Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
Modo = Modo,
|
||||
QtdCamerasSolo = VariaveisEquipamento.QuantidadeCamerasSolo,
|
||||
QtdBicos = VariaveisEquipamento.QuantidadeBicosPulverizadores,
|
||||
CapacidadeReservatorio = VariaveisEquipamento.CapacidadeReservatorio,
|
||||
RoverId = VariaveisEquipamento.Parametros.serial_number,
|
||||
RuasPercorrer = null,
|
||||
Mapa = null,
|
||||
Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
MovimentoAutomatico = true,
|
||||
DirecionalAutomatico = true,
|
||||
PulverizadorAutomatico = false,
|
||||
FrenagemAutomaticaAoParar = false,
|
||||
MovVelocidadeSErvasPercent = 50,
|
||||
MovVelocidadeCErvasPercent = 20,
|
||||
DirAnguloMaximo = 30,
|
||||
DirVelocidadeMovimento = 50,
|
||||
SonarAtivado = false,
|
||||
DirTipoMovimento = TiposControladorDirecional.IA,
|
||||
RegistrarDadosPosProcessamento = false,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
},
|
||||
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
MovimentoAutomatico = true,
|
||||
DirecionalAutomatico = true,
|
||||
PulverizadorAutomatico = false,
|
||||
|
||||
SonarAtivado = false,
|
||||
FrenagemAutomaticaAoParar = false,
|
||||
ImuParadaPorInclinacao = false,
|
||||
OakParadaPorObstaculo = false,
|
||||
MpcMatrizCusto = false,
|
||||
MpcHorizonte = 4.0,
|
||||
|
||||
MovVelocidadeSErvasPercent = 50,
|
||||
MovVelocidadeCErvasPercent = 20,
|
||||
DirAnguloMaximo = 30,
|
||||
DirVelocidadeMovimento = 50,
|
||||
DirTipoMovimento = TiposControladorDirecional.IA,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
};
|
||||
p.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
{
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Atu,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Gps,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Sen,
|
||||
Mandatorio = false,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Wit,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Pzm,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Lra,
|
||||
Mandatorio = true,
|
||||
}
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = true,
|
||||
},
|
||||
ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.CameraSolo,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Sonar,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Mapa,
|
||||
Mandatorio = true,
|
||||
}
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Atu,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Gps,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Sen,
|
||||
Mandatorio = false,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Wit,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Pzm,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Lra,
|
||||
Mandatorio = true,
|
||||
}
|
||||
};
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
p.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 0,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 0,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 1000,
|
||||
DelayEnvioComando = 1000,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Atu,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
Parametro = ParametrosOperacao.CameraSolo,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Sonar,
|
||||
Mandatorio = true,
|
||||
},
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Mapa,
|
||||
Mandatorio = true,
|
||||
}
|
||||
};
|
||||
if (isagrobase)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 0,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 0,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 1000,
|
||||
DelayEnvioComando = 1000,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Atu,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
break;
|
||||
case ModoOperacao.MapeamentoVisual:
|
||||
Variaveis.OperacaoEmAndamento.Parametros = new OperacaoParametrosModel()
|
||||
p.Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
Modo = Modo,
|
||||
QtdCamerasSolo = VariaveisEquipamento.QuantidadeCamerasSolo,
|
||||
QtdBicos = VariaveisEquipamento.QuantidadeBicosPulverizadores,
|
||||
CapacidadeReservatorio = VariaveisEquipamento.CapacidadeReservatorio,
|
||||
RoverId = VariaveisEquipamento.Parametros.serial_number,
|
||||
RuasPercorrer = null,
|
||||
Mapa = null,
|
||||
Controle = new OperacaoParametrosControleModel()
|
||||
{
|
||||
MovimentoAutomatico = true,
|
||||
DirecionalAutomatico = true,
|
||||
PulverizadorAutomatico = false,
|
||||
FrenagemAutomaticaAoParar = true,
|
||||
MovVelocidadeSErvasPercent = 40,
|
||||
MovVelocidadeCErvasPercent = 20,
|
||||
DirAnguloMaximo = 30,
|
||||
DirVelocidadeMovimento = 50,
|
||||
SonarAtivado = true,
|
||||
DirTipoMovimento = TiposControladorDirecional.PID,
|
||||
RegistrarDadosPosProcessamento = false,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
},
|
||||
ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
MovimentoAutomatico = true,
|
||||
DirecionalAutomatico = true,
|
||||
PulverizadorAutomatico = false,
|
||||
|
||||
SonarAtivado = false,
|
||||
FrenagemAutomaticaAoParar = true,
|
||||
ImuParadaPorInclinacao = true,
|
||||
OakParadaPorObstaculo = true,
|
||||
MpcMatrizCusto = false,
|
||||
MpcHorizonte = 4.0,
|
||||
|
||||
MovVelocidadeSErvasPercent = 40,
|
||||
MovVelocidadeCErvasPercent = 20,
|
||||
DirAnguloMaximo = 30,
|
||||
DirVelocidadeMovimento = 50,
|
||||
|
||||
DirTipoMovimento = TiposControladorDirecional.PID,
|
||||
|
||||
AtuAlturaAreaPulverizacao = 10,
|
||||
AtuDuracaoAtuacao = 200,
|
||||
AtuPercentualErvasBicoOff = 2,
|
||||
AtuPercentualErvasBicoOn = 1,
|
||||
AtuPercentualInicioPulverizacao = 70,
|
||||
AtuPressaoLinha = 85,
|
||||
};
|
||||
p.ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>()
|
||||
{
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
}
|
||||
Dispositivo = T_Code.Mov,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
},
|
||||
ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
new OperacaoModulosMandatoriosModel()
|
||||
{
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
Parametro = ParametrosOperacao.Sonar,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
}
|
||||
Dispositivo = T_Code.Dir,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
}
|
||||
};
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
p.ParametrosMandatorios = new List<OperacaoParametrosMandatoriosModel>()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 0,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 0,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
new OperacaoParametrosMandatoriosModel()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 200,
|
||||
DelayEnvioComando = 200,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
}
|
||||
},
|
||||
Parametro = ParametrosOperacao.Sonar,
|
||||
Mandatorio = true,
|
||||
Utilizar = true,
|
||||
}
|
||||
};
|
||||
if (isagrobase)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.ControleAnterior = new OperacaoControleModel();
|
||||
Variaveis.OperacaoEmAndamento.Controle = new OperacaoControleModel()
|
||||
{
|
||||
TipoMovimento = TipoMovimentoDirecional.RodasDianteiras,
|
||||
Angulo = 0,
|
||||
Direcao = Direcao.Parado,
|
||||
EmFreio = false,
|
||||
PercentualVelocidadeSP = 0,
|
||||
TiposControle = new List<OperacaoControleTipoModel>()
|
||||
{
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Mov,
|
||||
DelayEnvioComandoBase = 500,
|
||||
DelayEnvioComando = 500,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
},
|
||||
new OperacaoControleTipoModel()
|
||||
{
|
||||
Tipo = T_Code.Dir,
|
||||
DelayEnvioComandoBase = 200,
|
||||
DelayEnvioComando = 200,
|
||||
DelayEnvioComandoExtra = 0,
|
||||
Comandos = new List<string>(),
|
||||
UltimoComando = DateTime.Now
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Parametros.RoverId = VariaveisEquipamento.Parametros.serial_number;
|
||||
Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Npc, Mandatorio = true, Utilizar = true });
|
||||
Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Can, Mandatorio = true, Utilizar = true });
|
||||
Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Ipb, Mandatorio = true, Utilizar = true });
|
||||
Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Bat, Mandatorio = true, Utilizar = true });
|
||||
p.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Npc, Mandatorio = true, Utilizar = true });
|
||||
p.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Can, Mandatorio = true, Utilizar = true });
|
||||
p.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Ipb, Mandatorio = true, Utilizar = true });
|
||||
p.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel() { Dispositivo = T_Code.Bat, Mandatorio = true, Utilizar = true });
|
||||
p.ModulosMandatorios.ForEach(m => m.ComponentesEmUso = Variaveis.OperacaoEmAndamento.PreencherComponentesEmUso(m.Dispositivo));
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Parametros.ModulosMandatorios.ForEach(m => m.ComponentesEmUso = Variaveis.OperacaoEmAndamento.PreencherComponentesEmUso(m.Dispositivo));
|
||||
if (isagrobase)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Parametros = p;
|
||||
Variaveis.OperacaoEmAndamento.Trajetoria = new TrajetoriaMapaOperacaoModel(new List<List<GPSModel>>());
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento = new OperacaoSensoriamentoLogModel();
|
||||
RedisService.AtualizarCampos(CtxKey.DadosOperacao, ("configurado", false));
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.AtualizarDados();
|
||||
}
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Trajetoria = new TrajetoriaMapaOperacaoModel(new List<List<GPSModel>>());
|
||||
Variaveis.OperacaoEmAndamento.Parametros.DadosLeitura = new OperacaoParametrosDadosModel();
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento = new OperacaoSensoriamentoLogModel();
|
||||
|
||||
RedisService.AtualizarCampos(CtxKey.DadosOperacao, ("configurado", false));
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.AtualizarDados();
|
||||
return p;
|
||||
}
|
||||
|
||||
private Dictionary<string, (bool, bool)> PreencherComponentesEmUso(T_Code Modulo)
|
||||
|
|
@ -980,7 +971,7 @@ namespace AgroBase.Models
|
|||
{
|
||||
if (Parametros.Modo == null) return (false, new List<string>());
|
||||
|
||||
CarregarParametrosOperacaoPadrao((ModoOperacao)Parametros.Modo);
|
||||
CarregarParametrosOperacaoPadrao((ModoOperacao)Parametros.Modo, true);
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Parametros = Parametros;
|
||||
Variaveis.OperacaoEmAndamento.Parametros.RoverId = VariaveisEquipamento.Parametros.serial_number;
|
||||
|
|
|
|||
|
|
@ -379,7 +379,7 @@ namespace AgroBase.Services
|
|||
});
|
||||
if (PrimeiraExecucao)
|
||||
{
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.MapaGPS);
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.MapaGPS, true);
|
||||
}
|
||||
|
||||
//DispositivosMapeados.ForEach(d => d.AtualizarDados());
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class CameraManager:
|
|||
def __init__(self, mostrar_log):
|
||||
self.mostrar_log = mostrar_log
|
||||
self.mx_id = None
|
||||
self.model_svc = None
|
||||
self.reiniciar_status()
|
||||
|
||||
def reiniciar_status(self):
|
||||
|
|
@ -151,16 +152,17 @@ class CameraManager:
|
|||
def get_selected_frame(self, _frame_type: TipoFrameCamera):
|
||||
_frame = None
|
||||
if (_frame_type in [TipoFrameCamera.Rgb, TipoFrameCamera.Segmentacao, TipoFrameCamera.Overlay, TipoFrameCamera.Debug]):
|
||||
rgb_frame, seg_frame, overlay_frame, _, _ = self.model_svc.preview_infer_cached(self._ultimo_raw_input, self._ultimo_predictions, alpha=0.5)
|
||||
if _frame_type == TipoFrameCamera.Rgb:
|
||||
_frame = rgb_frame
|
||||
elif _frame_type == TipoFrameCamera.Segmentacao:
|
||||
_frame = seg_frame
|
||||
elif _frame_type == TipoFrameCamera.Overlay:
|
||||
_frame = overlay_frame
|
||||
elif _frame_type == TipoFrameCamera.Debug:
|
||||
self.weed_detector._mostrar_debug_bicos_overlay(overlay_frame, [], self._ultimo_controle, show=False)
|
||||
_frame = self.weed_detector._dbg_img
|
||||
if self.model_svc is not None:
|
||||
rgb_frame, seg_frame, overlay_frame, _, _ = self.model_svc.preview_infer_cached(self._ultimo_raw_input, self._ultimo_predictions, alpha=0.5)
|
||||
if _frame_type == TipoFrameCamera.Rgb:
|
||||
_frame = rgb_frame
|
||||
elif _frame_type == TipoFrameCamera.Segmentacao:
|
||||
_frame = seg_frame
|
||||
elif _frame_type == TipoFrameCamera.Overlay:
|
||||
_frame = overlay_frame
|
||||
elif _frame_type == TipoFrameCamera.Debug:
|
||||
self.weed_detector._mostrar_debug_bicos_overlay(overlay_frame, [], self._ultimo_controle, show=False)
|
||||
_frame = self.weed_detector._dbg_img
|
||||
elif _frame_type == TipoFrameCamera.Raw4:
|
||||
_frame = self._ultimo_raw_base
|
||||
return _frame
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ namespace OperationControl.Models
|
|||
}
|
||||
((App)Application.Current).Shell.Main?.AtualizarDadosTela_ParametrosOperacao(obj.Controle);
|
||||
((App)Application.Current).Shell.Main?.MAP?.CarregarDadosMapa(obj.Mapa, obj.RuasPercorrer);
|
||||
((App)Application.Current).Shell.Dock?._vm?.AtualizarDadosMapa(obj);
|
||||
((App)Application.Current).Shell.Dock?._vm?.AtualizarParametrosRover(obj);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AgroBase.Models.Operacoes;
|
||||
using AgroBase.Models;
|
||||
using AgroBase.Models.Operacoes;
|
||||
using OperationControl.Helpers;
|
||||
using OperationControl.Models;
|
||||
using OperationControl.Models.Operacao;
|
||||
|
|
@ -17,7 +18,20 @@ namespace OperationControl.ViewModels.Views.Operacao
|
|||
private bool _isCollapsed;
|
||||
private RoverCardModel _roverSelecionado;
|
||||
public ResumoOperacionalModel Resumo { get; } = new ResumoOperacionalModel();
|
||||
public OperacaoParametrosModel Parametros { get; } = new OperacaoParametrosModel();
|
||||
|
||||
private OperacaoParametrosModel _parametros = new OperacaoParametrosModel();
|
||||
public OperacaoParametrosModel Parametros
|
||||
{
|
||||
get => _parametros;
|
||||
set
|
||||
{
|
||||
if (_parametros != value)
|
||||
{
|
||||
_parametros = value;
|
||||
OnPropertyChanged(nameof(Parametros));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public OperacaoRightViewModel()
|
||||
{
|
||||
|
|
@ -33,6 +47,7 @@ namespace OperationControl.ViewModels.Views.Operacao
|
|||
SelecionarSecao(secaoParseada);
|
||||
});
|
||||
AcaoBotaoTopoCommand = new RelayCommand(_ => ExecutarAcaoBotaoTopo());
|
||||
CarregarParametrosPadraoCommand = new RelayCommand(p => CarregarParametrosPadrao((AgroBase.Models.Enums.ModoOperacao)p));
|
||||
LerParametrosCommand = new RelayCommand(_ => LerParametrosSolicitado?.Invoke());
|
||||
SalvarParametrosCommand = new RelayCommand(_ => SalvarParametrosSolicitado?.Invoke(Parametros));
|
||||
}
|
||||
|
|
@ -51,6 +66,7 @@ namespace OperationControl.ViewModels.Views.Operacao
|
|||
public ICommand AcaoBotaoTopoCommand { get; }
|
||||
public ICommand LerParametrosCommand { get; }
|
||||
public ICommand SalvarParametrosCommand { get; }
|
||||
public ICommand CarregarParametrosPadraoCommand { get; }
|
||||
|
||||
public bool IsCollapsed
|
||||
{
|
||||
|
|
@ -115,6 +131,8 @@ namespace OperationControl.ViewModels.Views.Operacao
|
|||
|
||||
public string TextoBotaoTopo => BotaoTopoEhVoltar ? "◀ Voltar" : "Trocar Rover";
|
||||
|
||||
public Array ModosOperacaoDisponiveis { get; } = Enum.GetValues(typeof(AgroBase.Models.Enums.ModoOperacao));
|
||||
|
||||
private void ExecutarAcaoBotaoTopo()
|
||||
{
|
||||
if (BotaoTopoEhVoltar)
|
||||
|
|
@ -127,6 +145,12 @@ namespace OperationControl.ViewModels.Views.Operacao
|
|||
}
|
||||
}
|
||||
|
||||
private void CarregarParametrosPadrao(AgroBase.Models.Enums.ModoOperacao modo)
|
||||
{
|
||||
var p = OperacaoModel.CarregarParametrosOperacaoPadrao(modo, false);
|
||||
p.Descricao = $"{p.Modo} - Padrão";
|
||||
Parametros = p;
|
||||
}
|
||||
|
||||
public void ToggleCollapse()
|
||||
{
|
||||
|
|
@ -226,45 +250,7 @@ namespace OperationControl.ViewModels.Views.Operacao
|
|||
public void AtualizarParametros(OperacaoParametrosModel origem)
|
||||
{
|
||||
if (origem == null) return;
|
||||
|
||||
Parametros.Modo = origem.Modo;
|
||||
Parametros.Descricao = origem.Descricao;
|
||||
Parametros.QtdBicos = origem.QtdBicos;
|
||||
Parametros.QtdCamerasSolo = origem.QtdCamerasSolo;
|
||||
Parametros.CapacidadeReservatorio = origem.CapacidadeReservatorio;
|
||||
|
||||
var controle_o = origem.Controle;
|
||||
if (controle_o == null) return;
|
||||
if (Parametros.Controle == null) Parametros.Controle = new OperacaoParametrosControleModel();
|
||||
var controle_p = Parametros.Controle;
|
||||
|
||||
controle_p.MovimentoAutomatico = controle_o.MovimentoAutomatico;
|
||||
controle_p.DirecionalAutomatico = controle_o.DirecionalAutomatico;
|
||||
controle_p.PulverizadorAutomatico = controle_o.PulverizadorAutomatico;
|
||||
controle_p.SonarAtivado = controle_o.SonarAtivado;
|
||||
controle_p.OakParadaPorObstaculo = controle_o.OakParadaPorObstaculo;
|
||||
controle_p.ImuParadaPorInclinacao = controle_o.ImuParadaPorInclinacao;
|
||||
controle_p.FrenagemAutomaticaAoParar = controle_o.FrenagemAutomaticaAoParar;
|
||||
controle_p.RegistrarDadosPosProcessamento = controle_o.RegistrarDadosPosProcessamento;
|
||||
|
||||
controle_p.MovVelocidadeSErvasPercent = controle_o.MovVelocidadeSErvasPercent;
|
||||
controle_p.MovVelocidadeCErvasPercent = controle_o.MovVelocidadeCErvasPercent;
|
||||
|
||||
controle_p.DirAnguloMaximo = controle_o.DirAnguloMaximo;
|
||||
controle_p.DirVelocidadeMovimento = controle_o.DirVelocidadeMovimento;
|
||||
controle_p.DirTipoMovimento = controle_o.DirTipoMovimento;
|
||||
|
||||
controle_p.AtuPressaoLinha = controle_o.AtuPressaoLinha;
|
||||
controle_p.AtuDuracaoAtuacao = controle_o.AtuDuracaoAtuacao;
|
||||
controle_p.AtuPercentualInicioPulverizacao = controle_o.AtuPercentualInicioPulverizacao;
|
||||
controle_p.AtuAlturaAreaPulverizacao = controle_o.AtuAlturaAreaPulverizacao;
|
||||
controle_p.AtuPercentualErvasBicoOn = controle_o.AtuPercentualErvasBicoOn;
|
||||
controle_p.AtuPercentualErvasBicoOff = controle_o.AtuPercentualErvasBicoOff;
|
||||
|
||||
controle_p.MpcMatrizCusto = controle_o.MpcMatrizCusto;
|
||||
controle_p.MpcHorizonte = controle_o.MpcHorizonte;
|
||||
|
||||
OnPropertyChanged(nameof(Parametros));
|
||||
Parametros = origem;
|
||||
}
|
||||
|
||||
private void OnPropertyChanged(string nome)
|
||||
|
|
|
|||
|
|
@ -614,6 +614,12 @@ namespace OperationControl.ViewModels
|
|||
Mapa?.markers?.UpdateMarkerPosition(VariaveisControleOperacao.BaseMarkerID, lat: dados?.Latitude, lon: dados?.Longitude, heading: dados?.OrientacaoReal);
|
||||
}
|
||||
|
||||
public void AtualizarParametrosRover(OperacaoParametrosModel? rover)
|
||||
{
|
||||
_viewOperacaoRight?._vm?.AtualizarParametros(rover);
|
||||
AtualizarDadosMapa(rover);
|
||||
}
|
||||
|
||||
public void AtualizarDadosMapa(OperacaoParametrosModel? dados)
|
||||
{
|
||||
_viewOperacaoCenter?.Mapa?.LoadMapFile(_ultimoMapaCarregado);
|
||||
|
|
@ -956,8 +962,6 @@ namespace OperationControl.ViewModels
|
|||
return;
|
||||
|
||||
VariaveisControleOperacao.RequisitarParametrosOperacao();
|
||||
|
||||
_viewOperacaoRight?._vm?.AtualizarParametros(VariaveisControleOperacao.RoverEmFoco);
|
||||
}
|
||||
private void OnSalvarParametrosSolicitado(OperacaoParametrosModel parametros)
|
||||
{
|
||||
|
|
@ -968,7 +972,7 @@ namespace OperationControl.ViewModels
|
|||
|
||||
var novosParametros = new OperacaoParametrosModel()
|
||||
{
|
||||
Modo = parametros.Modo ?? AgroBase.Models.Enums.ModoOperacao.NaoDefinido,
|
||||
Modo = parametros.Modo,
|
||||
Descricao = parametros.Descricao,
|
||||
QtdCamerasSolo = parametros.QtdCamerasSolo,
|
||||
QtdBicos = parametros.QtdBicos,
|
||||
|
|
@ -976,8 +980,8 @@ namespace OperationControl.ViewModels
|
|||
|
||||
Controle = parametros.Controle,
|
||||
|
||||
ModulosMandatorios = rover?.ModulosMandatorios,
|
||||
ParametrosMandatorios = rover?.ParametrosMandatorios,
|
||||
ModulosMandatorios = parametros?.ModulosMandatorios,
|
||||
ParametrosMandatorios = parametros?.ParametrosMandatorios,
|
||||
|
||||
RuasPercorrer = _viewOperacaoCenter?.Mapa?.RuasMapaCarregado?.Where(x => x.Selected)?.Select(x => x.Id)?.ToList(),
|
||||
Mapa = _viewOperacaoCenter?.Mapa?.CriarDadosMapa()
|
||||
|
|
@ -990,9 +994,22 @@ namespace OperationControl.ViewModels
|
|||
VariaveisControleOperacao.RoverEmFoco.QtdCamerasSolo = novosParametros.QtdCamerasSolo;
|
||||
VariaveisControleOperacao.RoverEmFoco.QtdBicos = novosParametros.QtdBicos;
|
||||
VariaveisControleOperacao.RoverEmFoco.CapacidadeReservatorio = novosParametros.CapacidadeReservatorio;
|
||||
|
||||
VariaveisControleOperacao.RoverEmFoco.Controle = novosParametros.Controle;
|
||||
|
||||
VariaveisControleOperacao.RoverEmFoco.ModulosMandatorios = novosParametros.ModulosMandatorios;
|
||||
VariaveisControleOperacao.RoverEmFoco.ParametrosMandatorios = novosParametros.ParametrosMandatorios;
|
||||
|
||||
VariaveisControleOperacao.RoverEmFoco.RuasPercorrer = novosParametros.RuasPercorrer;
|
||||
VariaveisControleOperacao.RoverEmFoco.Mapa = novosParametros.Mapa;
|
||||
|
||||
VariaveisControleOperacao.RequisitarParametrosOperacao();
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await Task.Delay(1000);
|
||||
_viewOperacaoRight?._vm?.SelecionarSecao(SecaoRightBar.Diagnostico);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:local="clr-namespace:OperationControl.Views.Operacao"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
mc:Ignorable="d">
|
||||
<UserControl.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
|
|
@ -360,6 +362,8 @@
|
|||
<StackPanel>
|
||||
<TextBlock Text="Operação" Foreground="White" FontSize="15" FontWeight="SemiBold" Margin="0,0,0,12"/>
|
||||
|
||||
<TextBlock Text="Modo" Style="{StaticResource ParamLabelStyle}"/>
|
||||
<ComboBox ItemsSource="{Binding ModosOperacaoDisponiveis}" SelectedItem="{Binding Parametros.Modo, Mode=TwoWay}" SelectionChanged="cmbModoOperacao_SelectionChanged" />
|
||||
<TextBlock Text="Descrição" Style="{StaticResource ParamLabelStyle}"/>
|
||||
<TextBox Text="{Binding Parametros.Descricao}" Style="{StaticResource ParamTextBoxStyle}" Margin="0,0,0,0"/>
|
||||
</StackPanel>
|
||||
|
|
|
|||
|
|
@ -36,5 +36,14 @@ namespace OperationControl.Views.Operacao
|
|||
_vm = vm;
|
||||
DataContext = _vm;
|
||||
}
|
||||
|
||||
private void cmbModoOperacao_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (DataContext is OperacaoRightViewModel vm && sender is System.Windows.Controls.ComboBox combo && combo.SelectedItem is AgroBase.Models.Enums.ModoOperacao modo)
|
||||
{
|
||||
if (vm.CarregarParametrosPadraoCommand?.CanExecute(modo) == true)
|
||||
vm.CarregarParametrosPadraoCommand.Execute(modo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue