ajustes no fluxo principal
This commit is contained in:
parent
3cfb100c86
commit
ec7239b9ab
Binary file not shown.
Binary file not shown.
|
|
@ -1316,9 +1316,13 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
int dado = (cmbMOV_Temperatura_Componente.SelectedIndex) / 4;
|
||||
|
||||
txtMOV_Temperatura_Media.Text = LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && (chbMOV_Temperatura_Media.Checked ? x.Modulo_ID == ID : true)).Average(x => dado == 0 ? x.Temperatura : x.TemperaturaDriver).ToString("0.00");
|
||||
txtMOV_Temperatura_Mediana.Text = FuncoesMatematicas.CalcularMediana(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && (chbMOV_Temperatura_Moda.Checked ? x.Modulo_ID == ID : true)).Select(x => dado == 0 ? x.Temperatura : x.TemperaturaDriver).ToList()).ToString("0.00");
|
||||
txtMOV_Temperatura_Moda.Text = FuncoesMatematicas.CalcularModa(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && (chbMOV_Temperatura_Mediana.Checked ? x.Modulo_ID == ID : true)).Select(x => dado == 0 ? x.Temperatura : x.TemperaturaDriver).ToList()).ToString("0.00");
|
||||
double RetornaDadoTemperatura(MovSensoriamentoLogModel x) => dado == 0 ? x?.Temperatura ?? 0 : x?.TemperaturaDriver ?? 0;
|
||||
|
||||
double valMin = 0;
|
||||
|
||||
txtMOV_Temperatura_Media.Text = LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && RetornaDadoTemperatura(x) > valMin && (chbMOV_Temperatura_Media.Checked ? x.Modulo_ID == ID : true)).DefaultIfEmpty().Average(x => RetornaDadoTemperatura(x)).ToString("0.00");
|
||||
txtMOV_Temperatura_Mediana.Text = FuncoesMatematicas.CalcularMediana(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && RetornaDadoTemperatura(x) > valMin && (chbMOV_Temperatura_Moda.Checked ? x.Modulo_ID == ID : true)).DefaultIfEmpty().Select(x => RetornaDadoTemperatura(x)).ToList()).ToString("0.00");
|
||||
txtMOV_Temperatura_Moda.Text = FuncoesMatematicas.CalcularModa(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && RetornaDadoTemperatura(x) > valMin && (chbMOV_Temperatura_Mediana.Checked ? x.Modulo_ID == ID : true)).DefaultIfEmpty().Select(x => RetornaDadoTemperatura(x)).ToList()).ToString("0.00");
|
||||
}
|
||||
|
||||
if (cmbMOV_AlImentacao_Componente.SelectedIndex > -1)
|
||||
|
|
@ -1335,9 +1339,13 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
int dado = (cmbMOV_AlImentacao_Componente.SelectedIndex) / 4;
|
||||
|
||||
txtMOV_Alimentacao_Media.Text = LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && (chbMOV_Alimentacao_Media.Checked ? x.Modulo_ID == ID : true)).Average(x => dado == 0 ? x.Tensao : dado == 1 ? x.Corrente_Motor : dado == 2 ? x.Corrente_Barramento : dado == 3 ? x.Potencia : x.CicloTrabalho).ToString("0.00");
|
||||
txtMOV_Alimentacao_Mediana.Text = FuncoesMatematicas.CalcularMediana(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && (chbMOV_Alimentacao_Moda.Checked ? x.Modulo_ID == ID : true)).Select(x => dado == 0 ? x.Tensao : dado == 1 ? x.Corrente_Motor : dado == 2 ? x.Corrente_Barramento : dado == 3 ? x.Potencia : x.CicloTrabalho).ToList()).ToString("0.00");
|
||||
txtMOV_Alimentacao_Moda.Text = FuncoesMatematicas.CalcularModa(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && (chbMOV_Alimentacao_Mediana.Checked ? x.Modulo_ID == ID : true)).Select(x => dado == 0 ? x.Tensao : dado == 1 ? x.Corrente_Motor : dado == 2 ? x.Corrente_Barramento : dado == 3 ? x.Potencia : x.CicloTrabalho).ToList()).ToString("0.00");
|
||||
double RetornaDadoAlimentacao(MovSensoriamentoLogModel x) => dado == 0 ? x?.Tensao ?? 0 : dado == 1 ? x?.Corrente_Motor ?? 0 : dado == 2 ? x?.Corrente_Barramento ?? 0 : dado == 3 ? x?.Potencia ?? 0 : x?.CicloTrabalho ?? 0;
|
||||
|
||||
double valMin = 0;
|
||||
|
||||
txtMOV_Alimentacao_Media.Text = LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && RetornaDadoAlimentacao(x) > valMin && (chbMOV_Alimentacao_Media.Checked ? x.Modulo_ID == ID : true)).DefaultIfEmpty().Average(x => RetornaDadoAlimentacao(x)).ToString("0.00");
|
||||
txtMOV_Alimentacao_Mediana.Text = FuncoesMatematicas.CalcularMediana(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && RetornaDadoAlimentacao(x) > valMin && (chbMOV_Alimentacao_Moda.Checked ? x.Modulo_ID == ID : true)).DefaultIfEmpty().Select(x => RetornaDadoAlimentacao(x)).ToList()).ToString("0.00");
|
||||
txtMOV_Alimentacao_Moda.Text = FuncoesMatematicas.CalcularModa(LogsMovimentacao.Where(x => x.Momento <= MomentoAtual && RetornaDadoAlimentacao(x) > valMin && (chbMOV_Alimentacao_Mediana.Checked ? x.Modulo_ID == ID : true)).DefaultIfEmpty().Select(x => RetornaDadoAlimentacao(x)).ToList()).ToString("0.00");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,14 @@
|
|||
using AgroBase.Forms.Operacoes;
|
||||
using AgroBase.Models.Modules;
|
||||
using AgroBase.Models.Modules;
|
||||
using AgroBase.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using static AgroBase.Models.Enums;
|
||||
|
||||
namespace AgroBase.Models.Operacoes
|
||||
{
|
||||
public class OperacaoMapaGPSModel
|
||||
{
|
||||
public Form frmOperacao { get; set; } = new frmOperacaoMapaGPS();
|
||||
public string frmOperacaoNome { get; set; } = "frmOperacaoMapaGPS";
|
||||
public OperacaoMapaGPSSensoriamentoModel Sensoriamento { get; set; } = new OperacaoMapaGPSSensoriamentoModel();
|
||||
|
||||
#region DIRECIONAL
|
||||
|
|
@ -24,7 +20,15 @@ namespace AgroBase.Models.Operacoes
|
|||
return;
|
||||
}
|
||||
|
||||
switch (Variaveis.OperacaoEmAndamento.Controle.TipoControleDirecional)
|
||||
var Controle = Variaveis.OperacaoEmAndamento.Controle;
|
||||
|
||||
if (Variaveis.OperacaoEmAndamento.StatusAtual != StatusOperacao.EmAndamento)
|
||||
{
|
||||
Controle.Angulo = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
switch (Controle.TipoControleDirecional)
|
||||
{
|
||||
case TiposControladorDirecional.PID:
|
||||
{
|
||||
|
|
@ -33,15 +37,13 @@ namespace AgroBase.Models.Operacoes
|
|||
}
|
||||
case TiposControladorDirecional.MPC:
|
||||
{
|
||||
var MPC = Variaveis.OperacaoEmAndamento.Controle.ControladorMPC;
|
||||
var MPC = Controle.ControladorMPC;
|
||||
var Trajetoria = Variaveis.OperacaoEmAndamento.Trajetoria;
|
||||
|
||||
(double steeringAngle, Enums.TipoMovimentoDirecional mode) = MPC.ComputeControl(
|
||||
GPSService.UltimaLeitura.Latitude, GPSService.UltimaLeitura.Longitude, Variaveis.OperacaoEmAndamento.Sensoriamento.Gps.AnguloCarroDefinido,
|
||||
Trajetoria.ProximoPonto.Posicao.Latitude, Trajetoria.ProximoPonto.Posicao.Longitude, Trajetoria.ProximoPonto.Orientacao,
|
||||
Variaveis.OperacaoEmAndamento.Controle.PercentualVelocidadeSP, Trajetoria.DistanciaEsquerda, Trajetoria.DistanciaDireita, new List<Obstaculo>());
|
||||
|
||||
var Controle = Variaveis.OperacaoEmAndamento.Controle;
|
||||
Controle.PercentualVelocidadeSP, Trajetoria.DistanciaEsquerda, Trajetoria.DistanciaDireita, new List<Obstaculo>());
|
||||
|
||||
Controle.Angulo = steeringAngle;
|
||||
Controle.TipoMovimento = mode;
|
||||
|
|
@ -208,19 +210,20 @@ namespace AgroBase.Models.Operacoes
|
|||
}
|
||||
|
||||
var Controle = Variaveis.OperacaoEmAndamento.Controle;
|
||||
var statusAtual = Variaveis.OperacaoEmAndamento.Trajetoria.StatusAtual;
|
||||
|
||||
if (Variaveis.OperacaoEmAndamento.StatusAtual != StatusOperacao.EmAndamento)
|
||||
{
|
||||
Controle.PercentualVelocidadeSP = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
Controle.PercentualVelocidadeSP = CalcularVelocidadeRelativa(Controle);
|
||||
|
||||
switch (statusAtual)
|
||||
switch (Variaveis.OperacaoEmAndamento.Trajetoria.StatusAtual)
|
||||
{
|
||||
case StatusCarroMapa.Parado:
|
||||
{
|
||||
var BicosNaoAtuados = new List<AtuadorBicoModel>(Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.BicosPulverizadores);
|
||||
BicosNaoAtuados.ForEach(x => x.ComandoAtuar = false);
|
||||
Controle.BicosAtuados = new List<AtuadorBicoModel>(BicosNaoAtuados.ToList());
|
||||
Controle.PercentualVelocidadeSP = 0;
|
||||
Controle.Angulo = 0;
|
||||
break;
|
||||
}
|
||||
case StatusCarroMapa.Direcionando:
|
||||
|
|
@ -295,13 +298,25 @@ namespace AgroBase.Models.Operacoes
|
|||
|
||||
#endregion
|
||||
|
||||
public void CalculaDadosMovimentacaoAutonoma()
|
||||
{
|
||||
DefinirDadosControleMov();
|
||||
#region ATUADOR
|
||||
|
||||
DefinirDadosControleDir();
|
||||
public void DefinirDadosControleAtu()
|
||||
{
|
||||
var Controle = Variaveis.OperacaoEmAndamento.Controle;
|
||||
|
||||
if (Variaveis.OperacaoEmAndamento.StatusAtual != StatusOperacao.EmAndamento)
|
||||
{
|
||||
var BicosNaoAtuados = new List<AtuadorBicoModel>(Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.BicosPulverizadores ?? new List<AtuadorBicoModel>());
|
||||
BicosNaoAtuados.ForEach(x => x.ComandoAtuar = false);
|
||||
Controle.BicosAtuados = new List<AtuadorBicoModel>(BicosNaoAtuados.ToList());
|
||||
return;
|
||||
}
|
||||
|
||||
Controle.BicosAtuados = Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.BicosPulverizadores?.Select(x => x?.Clone() ?? new AtuadorBicoModel()).DefaultIfEmpty().ToList();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
public class OperacaoMapaGPSSensoriamentoModel
|
||||
|
|
|
|||
|
|
@ -77,7 +77,14 @@ namespace AgroBase.Models
|
|||
{
|
||||
case ModoOperacao.Manual:
|
||||
{
|
||||
etapaAtual = StatusOperacao.EmAndamento;
|
||||
if (Variaveis.OperacaoEmAndamento.OperacaoLiberada)
|
||||
{
|
||||
etapaAtual = StatusOperacao.EmAndamento;
|
||||
}
|
||||
else
|
||||
{
|
||||
etapaAtual = StatusOperacao.Parado;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ModoOperacao.MapaGPS:
|
||||
|
|
@ -225,6 +232,7 @@ namespace AgroBase.Models
|
|||
if (parametrosMandatorios.Any(x => x.Mandatorio && x.Parametro == ParametrosOperacao.Mapa) && !Variaveis.OperacaoEmAndamento.Mapa.mapaService.Carregado) _operacaoLiberada = false;
|
||||
if (parametrosMandatorios.Any(x => x.Mandatorio && x.Parametro == ParametrosOperacao.Joystick) && GeneralJoystick.JoystickConectado == null) _operacaoLiberada = false;
|
||||
if (!Variaveis.OperacaoEmAndamento.DispositivosIndividuaisConectados) _operacaoLiberada = false;
|
||||
if (Variaveis.OperacaoEmAndamento.ModulosMandatorios.Any(x => x.Dispositivo == T_Code.Gps && x.Mandatorio && (!x.Conectado || Variaveis.OperacaoEmAndamento.Sensoriamento.Gps.PrecisaoCm < GPSService.PrecisaoMinimaCm))) _operacaoLiberada = false; // Precisao baixa do GPS
|
||||
}
|
||||
|
||||
if (Variaveis.DebugMode) _operacaoLiberada = true;
|
||||
|
|
@ -1247,7 +1255,7 @@ namespace AgroBase.Models
|
|||
|
||||
bool MovimentoLiberado = Variaveis.OperacaoEmAndamento.StatusAtual != StatusOperacao.Aguardando && Variaveis.OperacaoEmAndamento.StatusAtual != StatusOperacao.Parado && !MKS057DService.Referenciando;
|
||||
|
||||
if (MovimentoLiberado)
|
||||
if (MovimentoLiberado || ForcarEnvio)
|
||||
{
|
||||
foreach (var Ctrl in _Controle.TiposControle)
|
||||
{
|
||||
|
|
@ -1262,7 +1270,7 @@ namespace AgroBase.Models
|
|||
(IDispositivosService)Variaveis.OperacaoEmAndamento.DispAtu :
|
||||
(IDispositivosService)Variaveis.OperacaoEmAndamento.DispMvd;
|
||||
|
||||
var Protocolos = EnviarProtocoloComando(disp, Ctrl.Tipo, ForcarEnvio);
|
||||
var Protocolos = EnviarProtocoloComando(disp, Ctrl.Tipo);
|
||||
Ctrl.UltimoComando = Agora;
|
||||
Ctrl.Comandos.AddRange(Protocolos);
|
||||
}
|
||||
|
|
@ -1270,9 +1278,9 @@ namespace AgroBase.Models
|
|||
}
|
||||
}
|
||||
|
||||
public List<string> EnviarProtocoloComando(IDispositivosService Dispositivo, T_Code Tipo, bool ForcarEnvio)
|
||||
public List<string> EnviarProtocoloComando(IDispositivosService Dispositivo, T_Code Tipo)
|
||||
{
|
||||
if (Dispositivo == null || !Iniciado)
|
||||
if (Dispositivo == null || !Variaveis.OperacaoEmAndamento.Iniciado)
|
||||
{
|
||||
return new List<string>();
|
||||
}
|
||||
|
|
@ -1318,33 +1326,6 @@ namespace AgroBase.Models
|
|||
{
|
||||
Variaveis.OperacaoEmAndamento.OpMapaGPS.DefinirDadosControleDir();
|
||||
|
||||
/*if (_Controle.Angulo == 0)
|
||||
{
|
||||
_Controle.Direcao = Direcao.Parado;
|
||||
}
|
||||
else if (_Controle.Angulo < 0) // Ângulo negativo
|
||||
{
|
||||
if (_ControleAnterior.Angulo < _Controle.Angulo) // Movendo-se para menos negativo (ex: -30 → -10)
|
||||
{
|
||||
_Controle.Direcao = Direcao.Direita;
|
||||
}
|
||||
else if (_ControleAnterior.Angulo > _Controle.Angulo) // Movendo-se para mais negativo (ex: -10 → -30)
|
||||
{
|
||||
_Controle.Direcao = Direcao.Esquerda;
|
||||
}
|
||||
}
|
||||
else if (_Controle.Angulo > 0) // Ângulo positivo
|
||||
{
|
||||
if (_ControleAnterior.Angulo > _Controle.Angulo) // Movendo-se para menos positivo (ex: 30 → 10)
|
||||
{
|
||||
_Controle.Direcao = Direcao.Esquerda;
|
||||
}
|
||||
else if (_ControleAnterior.Angulo < _Controle.Angulo) // Movendo-se para mais positivo (ex: 10 → 30)
|
||||
{
|
||||
_Controle.Direcao = Direcao.Direita;
|
||||
}
|
||||
}*/
|
||||
|
||||
if (_Controle.Angulo > 0)
|
||||
{
|
||||
_Controle.Direcao = Direcao.Direita;
|
||||
|
|
@ -1379,7 +1360,7 @@ namespace AgroBase.Models
|
|||
}
|
||||
else if (Dispositivo.Dados is AtuadorModel)
|
||||
{
|
||||
_Controle.BicosAtuados = ((AtuadorModel)Dispositivo.Dados).BicosPulverizadores.Select(x => x.Clone()).ToList();
|
||||
Variaveis.OperacaoEmAndamento.OpMapaGPS.DefinirDadosControleAtu();
|
||||
|
||||
if (_ControleAnterior.BicosAtuados.Count() >= _Controle.BicosAtuados.Count())
|
||||
{
|
||||
|
|
@ -1444,33 +1425,6 @@ namespace AgroBase.Models
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/*public void AtualizarDadosControlePulverizador(bool ForcarEnvio)
|
||||
{
|
||||
if (Variaveis.OperacaoEmAndamento.Controle.PulverizadorAutomatico)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.AtualizarControleAtuadores();
|
||||
DateTime Agora = DateTime.Now;
|
||||
|
||||
var _Controle = Variaveis.OperacaoEmAndamento.Controle;
|
||||
|
||||
OperacaoControleTipoModel ControleAtu = _Controle.TiposControle != null ? _Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Atu) : null;
|
||||
if (ControleAtu != null && (Agora - ControleAtu.UltimoComando).TotalMilliseconds > ControleAtu.DelayEnvioComando)
|
||||
{
|
||||
// Enviar comando ATU
|
||||
var Protocolos = EnviarProtocoloComando(Variaveis.OperacaoEmAndamento.DispAtu, T_Code.Atu, ForcarEnvio);
|
||||
ControleAtu.UltimoComando = Agora;
|
||||
ControleAtu.Comandos.AddRange(Protocolos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void AtualizarControleAtuadores()
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Controle.BicosAtuados = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores.Select(x => x.Clone()).ToList();
|
||||
}*/
|
||||
|
||||
private async Task tmrLeituras_Tick()
|
||||
{
|
||||
if (Variaveis.IsAgroMonitor)
|
||||
|
|
@ -1828,18 +1782,8 @@ namespace AgroBase.Models
|
|||
|
||||
private void PararCarroOperacaoInterrompida(bool finalizar)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Controle.PercentualVelocidadeSP = 0; // Velocidade Zero (parado)
|
||||
if (finalizar)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Controle.Angulo = 0; // Angulo Zero (direcional reto)
|
||||
}
|
||||
Variaveis.OperacaoEmAndamento.Controle.BicosAtuados.ForEach(x => x.ComandoAtuar = false); // Bicos desatuados
|
||||
|
||||
AtualizarDadosControle(true);
|
||||
|
||||
|
||||
//AtualizarDadosControlePulverizador(true);
|
||||
|
||||
if (finalizar)
|
||||
{
|
||||
var Bomba = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ namespace AgroBase.Services
|
|||
|
||||
public static bool CorrecaoRTK = true;
|
||||
|
||||
public static double PrecisaoMinimaCm { get; set; } = 100.0;
|
||||
|
||||
public static void AtualizarPortaCOM(SerialPort Porta)
|
||||
{
|
||||
if (PortaGPS == null)
|
||||
|
|
@ -453,7 +455,7 @@ namespace AgroBase.Services
|
|||
PenultimaLeitura.TipoOrientacao = UltimaLeitura.TipoOrientacao;
|
||||
|
||||
UltimaLeitura.Momento = DateTime.Now;
|
||||
UltimaLeitura.OrientacaoReal = headingTrue;
|
||||
UltimaLeitura.OrientacaoReal = (headingTrue + 180) % 360; // Inverter o angulo lido para normalizar com o angulo calculado entre leituras
|
||||
UltimaLeitura.TipoOrientacao = status;
|
||||
|
||||
// ✅ Atualiza o ângulo unificado no GPSService
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":500,"StackTrace":"AtuadorModel.IniciarRegistrador","Id":"tmrRegistrador_Atu","TimeTick":"00:00:00"},"Modulo_ID":"Atu","IP":"192.168.100.13","RequisitarDados":true,"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B02","Posicao":2,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B03","Posicao":3,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B04","Posicao":4,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0}],"BombasPressurizadoras":[{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false}],"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","LimiteMaximo":120.0,"LimiteMinimo":60.0}],"BombaPressurizadora":{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false},"ScriptDeteccaoErvas":"weed_detector_oak-1_0.py","DadosLeitura":{"Momento":"0001-01-01T00:00:00","Conectado":false,"Mod_ID":null,"QualidadeWifi":0,"LatenciaLoop":0,"BicosPulverizadores":[],"BombasPressurizadoras":[],"SensoresFluxo":[],"SensoresMassa":[],"SensoresPressao":[]},"_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"MassaReservatorio":0.0,"VolumeReservatorio":0.0,"PercentualReservatorio":0.0,"VolumeVazaoAferido":0.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"VazaoFluxoMLpSInstantanea":0.0,"VazaoFluxoMLpSMedia":0.0,"VolumeVazaoML":0.0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"PressaoLinha":0.0,"PressaoLinhaCalc":0.0,"PercentualErvasTerreno":0.0}
|
||||
{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":500,"StackTrace":"AtuadorModel.IniciarRegistrador","Id":"tmrRegistrador_Atu","TimeTick":"00:00:00"},"Modulo_ID":"Atu","IP":"192.168.100.13","RequisitarDados":true,"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B02","Posicao":2,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B03","Posicao":3,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B04","Posicao":4,"Componente":422,"AtuacaoNivelAlto":true,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.02674584437758935,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0}],"BombasPressurizadoras":[{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false}],"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","LimiteMaximo":120.0,"LimiteMinimo":60.0}],"BombaPressurizadora":{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"LeituraPotencia":0.0,"LeituraPressaoSP":0.0,"LeituraPressao":0.0,"Leitura":null,"Inicializado":false},"ScriptDeteccaoErvas":"weed_detector_oak-1_0.py","DadosLeitura":{"Momento":"0001-01-01T00:00:00","Conectado":false,"Mod_ID":null,"QualidadeWifi":0,"LatenciaLoop":0,"BicosPulverizadores":[],"BombasPressurizadoras":[],"SensoresFluxo":[],"SensoresMassa":[],"SensoresPressao":[]},"_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"MassaReservatorio":0.0,"VolumeReservatorio":0.0,"PercentualReservatorio":0.0,"VolumeVazaoAferido":0.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"VazaoFluxoMLpSInstantanea":0.0,"VazaoFluxoMLpSMedia":0.0,"VolumeVazaoML":0.0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"PressaoLinha":0.0,"PressaoLinhaCalc":0.0,"PercentualErvasTerreno":0.0}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -25,7 +25,7 @@
|
|||
<meta name="viewport" content="width=device-width,
|
||||
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<style>
|
||||
#map_0c3554ee11c5591d304c0c6d4d52e50e {
|
||||
#map_c17ce78bff49a7401eff2508c6dcc0c3 {
|
||||
position: relative;
|
||||
width: 100.0%;
|
||||
height: 100.0%;
|
||||
|
|
@ -39,14 +39,14 @@
|
|||
<body>
|
||||
|
||||
|
||||
<div class="folium-map" id="map_0c3554ee11c5591d304c0c6d4d52e50e" ></div>
|
||||
<div class="folium-map" id="map_c17ce78bff49a7401eff2508c6dcc0c3" ></div>
|
||||
|
||||
</body>
|
||||
<script>
|
||||
|
||||
|
||||
var map_0c3554ee11c5591d304c0c6d4d52e50e = L.map(
|
||||
"map_0c3554ee11c5591d304c0c6d4d52e50e",
|
||||
var map_c17ce78bff49a7401eff2508c6dcc0c3 = L.map(
|
||||
"map_c17ce78bff49a7401eff2508c6dcc0c3",
|
||||
{
|
||||
center: [0.0, 0.0],
|
||||
crs: L.CRS.EPSG3857,
|
||||
|
|
@ -59,6 +59,15 @@
|
|||
|
||||
|
||||
|
||||
|
||||
var tile_layer_b68aee685770afdb7f454cf948fb9b33 = L.tileLayer(
|
||||
"https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||
{"attribution": "\u0026copy; \u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
|
||||
);
|
||||
|
||||
|
||||
tile_layer_b68aee685770afdb7f454cf948fb9b33.addTo(map_c17ce78bff49a7401eff2508c6dcc0c3);
|
||||
|
||||
</script>
|
||||
|
||||
<script>
|
||||
|
|
@ -78,7 +87,7 @@
|
|||
}
|
||||
trajeto_json_add({"features": []});
|
||||
|
||||
trajeto_json.addTo(map_0c3554ee11c5591d304c0c6d4d52e50e);
|
||||
trajeto_json.addTo(map_c17ce78bff49a7401eff2508c6dcc0c3);
|
||||
|
||||
function adicionarGeometria(novaGeometria) {
|
||||
trajeto_json.addData(novaGeometria);
|
||||
|
|
@ -136,7 +145,7 @@
|
|||
|
||||
var marcadorDinamico = L.marker([0, 0], {
|
||||
icon: customIcon
|
||||
}).addTo(map_0c3554ee11c5591d304c0c6d4d52e50e);
|
||||
}).addTo(map_c17ce78bff49a7401eff2508c6dcc0c3);
|
||||
|
||||
// Conectar ao broker MQTT
|
||||
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
|
||||
|
|
@ -174,7 +183,7 @@
|
|||
marcadorDinamico.setRotationAngle(angulo);
|
||||
|
||||
adicionarCoordenada("Tj", [novaLongitude, novaLatitude]);
|
||||
map_0c3554ee11c5591d304c0c6d4d52e50e.setView(novaPosicao, map_0c3554ee11c5591d304c0c6d4d52e50e.getZoom());
|
||||
map_c17ce78bff49a7401eff2508c6dcc0c3.setView(novaPosicao, map_c17ce78bff49a7401eff2508c6dcc0c3.getZoom());
|
||||
});
|
||||
|
||||
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue