ajuste simulacao

This commit is contained in:
Diego Freitas 2024-12-18 16:11:37 -03:00
parent bb30a71dc3
commit d93bea8441
29 changed files with 138 additions and 236 deletions

Binary file not shown.

View File

@ -3,36 +3,12 @@
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\", "WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
"Documents": [ "Documents": [
{ {
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\operacoes\\operacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\operacoes\\operacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\modules\\movimentacaounificadomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\movimentacaounificadomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\generaljoystick.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\generaljoystick.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\generaljoystick.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\generaljoystick.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\forms\\frmsimulacaomapagps.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmsimulacaomapagps.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\forms\\operacoes\\frmoperacaomanual.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\operacoes\\frmoperacaomanual.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\forms\\operacoes\\frmresultadosoperacao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\operacoes\\frmresultadosoperacao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\forms\\operacoes\\frmresultadosoperacao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\operacoes\\frmresultadosoperacao.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\variaveis.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\variaveis.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
} }
], ],
"DocumentGroupContainers": [ "DocumentGroupContainers": [
@ -42,58 +18,8 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedWidth": 200, "DockedWidth": 200,
"SelectedChildIndex": 4, "SelectedChildIndex": 0,
"Children": [ "Children": [
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "frmResultadosOperacao.cs [Design]",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs [Design]",
"RelativeToolTip": "AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs [Design]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-18T15:16:47.82Z",
"EditorCaption": " [Design]"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "Variaveis.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Variaveis.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Variaveis.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Variaveis.cs",
"RelativeToolTip": "AgroBase\\Models\\Variaveis.cs",
"ViewState": "AQIAAC8AAAAAAAAAAAAywE0AAAAsAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-18T10:12:52.226Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "frmOperacaoManual.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Operacoes\\frmOperacaoManual.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\Operacoes\\frmOperacaoManual.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Operacoes\\frmOperacaoManual.cs",
"RelativeToolTip": "AgroBase\\Forms\\Operacoes\\frmOperacaoManual.cs",
"ViewState": "AQIAAD0AAAAAAAAAAAAUwJ4AAABuAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-18T10:08:22.722Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "frmSimulacaoMapaGPS.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
"RelativeToolTip": "AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
"ViewState": "AQIAABoAAAAAAAAAAAAUwKgAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-17T20:31:58.828Z",
"EditorCaption": ""
},
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 0,
@ -102,49 +28,23 @@
"RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs", "RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs", "ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs", "RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"ViewState": "AQIAAN8EAAAAAAAAAAAwwOcEAAAAAAAA", "ViewState": "AQIAAF0GAAAAAAAAAAApwBQHAABTAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-17T20:14:20.606Z", "WhenOpened": "2024-12-17T20:14:20.606Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 2, "DocumentIndex": 1,
"Title": "GeneralJoystick.cs", "Title": "GeneralJoystick.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\GeneralJoystick.cs", "DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\GeneralJoystick.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\GeneralJoystick.cs", "RelativeDocumentMoniker": "AgroBase\\Models\\GeneralJoystick.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\GeneralJoystick.cs", "ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\GeneralJoystick.cs",
"RelativeToolTip": "AgroBase\\Models\\GeneralJoystick.cs", "RelativeToolTip": "AgroBase\\Models\\GeneralJoystick.cs",
"ViewState": "AQIAAGQCAAAAAAAAAAAUwGICAACIAAAA", "ViewState": "AQIAAHsCAAAAAAAAAAAnwOkCAABUAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-18T13:02:20.66Z", "WhenOpened": "2024-12-18T13:02:20.66Z",
"EditorCaption": "" "EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "frmResultadosOperacao.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs",
"RelativeToolTip": "AgroBase\\Forms\\Operacoes\\frmResultadosOperacao.cs",
"ViewState": "AQIAADcAAAAAAAAAAAAwwAIDAAAzAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-18T14:06:28.014Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "MovimentacaoUnificadoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"ViewState": "AQIAANcAAAAAAAAAAAAswFMBAABUAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-18T12:25:31.449Z",
"EditorCaption": ""
} }
] ]
} }

View File

@ -691,19 +691,27 @@ namespace AgroBase.Forms.Operacoes
private Bitmap CarregarImagemCamera(string Caminho) private Bitmap CarregarImagemCamera(string Caminho)
{ {
if (File.Exists(Caminho + trbMomento.Value + ".jpg")) string caminhoCompleto = Caminho + trbMomento.Value + ".jpg";
Bitmap frame = new Bitmap(1, 1);
using (Graphics g = Graphics.FromImage(frame))
{ {
return new Bitmap(Image.FromFile(Caminho + trbMomento.Value + ".jpg")); g.Clear(Color.Black);
} }
else Bitmap blackFrame = new Bitmap(frame);
if (File.Exists(caminhoCompleto))
{ {
Bitmap frame = new Bitmap(1, 1); try
using (Graphics g = Graphics.FromImage(frame))
{ {
g.Clear(Color.Black); return new Bitmap(Image.FromFile(caminhoCompleto));
}
catch (Exception ex)
{
} }
return new Bitmap(frame);
} }
return blackFrame;
} }
private Bitmap DesenharDeteccoesErvas(CameraCoordenadasFrameModel frame, Bitmap bitmapOriginal) private Bitmap DesenharDeteccoesErvas(CameraCoordenadasFrameModel frame, Bitmap bitmapOriginal)

View File

@ -192,24 +192,37 @@ namespace AgroBase.Models
// Desenhar o ponto GPS // Desenhar o ponto GPS
DrawPoint(g, x, y, pointColor); DrawPoint(g, x, y, pointColor);
GPSModel posicaoRobo = GPSService.UltimaLeitura; // Calcular as dimensões do robô em centímetros
float larguraTotal = larguraEsquerda + larguraDireita; // Largura total em cm
float comprimentoTotal = comprimentoFrente + comprimentoTras; // Comprimento total em cm
// Ajustar o ângulo base para cálculo dos pontos // Calcular os deslocamentos do GPS em relação ao centro do robô
int agPlus = Convert.ToInt32(135 + angle); float deslocamentoX = (larguraTotal / 2) - larguraEsquerda; // GPS deslocado horizontalmente
float deslocamentoY = (comprimentoTotal / 2) - comprimentoFrente; // GPS deslocado verticalmente
// Calcular os pontos laterais considerando zoom em latitude e longitude // Ajustar as dimensões para o espaço de pixels considerando o zoom
(float xET, float yET) = CalcularPontosLateraisRobo(posicaoRobo, larguraEsquerda, comprimentoTras, x, y, agPlus + 90); float larguraPixel = (float)(larguraTotal * _zoom / 1e7); // Escala do zoom em pixels
(float xDT, float yDT) = CalcularPontosLateraisRobo(posicaoRobo, larguraDireita, comprimentoTras, x, y, agPlus + 0); float comprimentoPixel = (float)(comprimentoTotal * _zoom / 1e7); // Escala do zoom em pixels
(float xEF, float yEF) = CalcularPontosLateraisRobo(posicaoRobo, larguraEsquerda, comprimentoFrente, x, y, agPlus + 180);
(float xDF, float yDF) = CalcularPontosLateraisRobo(posicaoRobo, larguraDireita, comprimentoFrente, x, y, agPlus + 270);
// Calcular os cantos do retângulo usando os pontos calculados // Calcular os deslocamentos em pixels
float deslocamentoXPixel = (float)(deslocamentoX * _zoom / 1e7);
float deslocamentoYPixel = (float)(deslocamentoY * _zoom / 1e7);
// Coordenadas ajustadas para o centro do robô
float centroRoboX = x + deslocamentoXPixel; // Ajuste do deslocamento em pixels
float centroRoboY = y - deslocamentoYPixel;
// Calcular os vértices do retângulo representando o robô
PointF[] corners = new PointF[4]; PointF[] corners = new PointF[4];
corners[0] = new PointF(xET, yET); // Superior esquerdo // Superior esquerdo
corners[1] = new PointF(xDT, yDT); // Superior direito corners[0] = CalcularPontoRotacionado(centroRoboX, centroRoboY, -larguraPixel / 2, -comprimentoPixel / 2, angle);
corners[2] = new PointF(xDF, yDF); // Inferior direito // Superior direito
corners[3] = new PointF(xEF, yEF); // Inferior esquerdo corners[1] = CalcularPontoRotacionado(centroRoboX, centroRoboY, larguraPixel / 2, -comprimentoPixel / 2, angle);
// Inferior direito
corners[2] = CalcularPontoRotacionado(centroRoboX, centroRoboY, larguraPixel / 2, comprimentoPixel / 2, angle);
// Inferior esquerdo
corners[3] = CalcularPontoRotacionado(centroRoboX, centroRoboY, -larguraPixel / 2, comprimentoPixel / 2, angle);
// Desenhar o contorno do robô // Desenhar o contorno do robô
using (Pen pen = new Pen(borderColor, 2)) using (Pen pen = new Pen(borderColor, 2))
@ -217,15 +230,38 @@ namespace AgroBase.Models
g.DrawPolygon(pen, corners); g.DrawPolygon(pen, corners);
} }
// Desenhar a linha indicando a frente do robô (do ponto central para a frente) // Calcular o ponto final da linha indicando a frente do robô
DrawFrontLine(g, x, y, corners[2].X, corners[2].Y, corners[3].X, corners[3].Y, borderColor); float linhaFrenteComprimento = comprimentoFrente * (float)_zoom / 1e7f; // Ajustar para pixels considerando o zoom
float frenteLinhaX = x + linhaFrenteComprimento * (float)Math.Cos((angle) * Math.PI / 180);
float frenteLinhaY = y - linhaFrenteComprimento * (float)Math.Sin((angle) * Math.PI / 180);
// Desenhar a linha do GPS até a frente do robô
using (Pen frontPen = new Pen(borderColor, 2))
{
g.DrawLine(frontPen, x, y, frenteLinhaX, frenteLinhaY);
}
// Calcular a relação pixel para cm baseado na largura total // Calcular a relação pixel para cm baseado na largura total
float PxToCm = Math.Abs(xET - xDT) / (larguraDireita + larguraEsquerda); float PxToCm = larguraTotal / larguraPixel;
return PxToCm; return PxToCm;
} }
private PointF CalcularPontoRotacionado(float centroX, float centroY, float offsetX, float offsetY, float angle)
{
// Converter o ângulo para radianos
float rad = angle * (float)Math.PI / 180;
// Calcular as novas coordenadas após rotação
float cos = (float)Math.Cos(rad);
float sin = (float)Math.Sin(rad);
float novoX = centroX + (offsetX * cos - offsetY * sin);
float novoY = centroY + (offsetX * sin + offsetY * cos);
return new PointF(novoX, novoY);
}
private void DrawObstacle(Graphics g, float xRobot, float yRobot, Color pointColor, Color borderColor, float angle, Obstaculo obstaculo, float PxToCm) private void DrawObstacle(Graphics g, float xRobot, float yRobot, Color pointColor, Color borderColor, float angle, Obstaculo obstaculo, float PxToCm)
{ {
GPSModel posicaoRobo = GPSService.UltimaLeitura; GPSModel posicaoRobo = GPSService.UltimaLeitura;

View File

@ -1200,26 +1200,31 @@ namespace AgroBase.Models
var _Controle = Variaveis.OperacaoEmAndamento.Controle; var _Controle = Variaveis.OperacaoEmAndamento.Controle;
var _ControleAnterior = Variaveis.OperacaoEmAndamento.ControleAnterior; var _ControleAnterior = Variaveis.OperacaoEmAndamento.ControleAnterior;
bool MovimentoLiberado = !MKS057DService.Referenciando;
OperacaoControleTipoModel ControleMov = _Controle.TiposControle != null ? _Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Mov) : null; OperacaoControleTipoModel ControleMov = _Controle.TiposControle != null ? _Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Mov) : null;
OperacaoControleTipoModel ControleDir = _Controle.TiposControle != null ? _Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Dir) : null; OperacaoControleTipoModel ControleDir = _Controle.TiposControle != null ? _Controle.TiposControle.FirstOrDefault(x => x.Tipo == T_Code.Dir) : null;
if (ControleMov != null && (Agora - ControleMov.UltimoComando).TotalMilliseconds > ControleMov.DelayEnvioComando) // && _Controle.RPM_SP != _ControleAnterior.RPM_SP if (MovimentoLiberado)
{ {
// Enviar comando MOV if (ControleMov != null && (Agora - ControleMov.UltimoComando).TotalMilliseconds > ControleMov.DelayEnvioComando) // && _Controle.RPM_SP != _ControleAnterior.RPM_SP
var Protocolos = EnviarProtocoloComando(Variaveis.OperacaoEmAndamento.DispMvd, T_Code.Mov, ForcarEnvio); {
ControleMov.UltimoComando = Agora; // Enviar comando MOV
ControleMov.Comandos.AddRange(Protocolos); var Protocolos = EnviarProtocoloComando(Variaveis.OperacaoEmAndamento.DispMvd, T_Code.Mov, ForcarEnvio);
ControleMov.UltimoComando = Agora;
ControleMov.Comandos.AddRange(Protocolos);
_ControleAnterior.PercentualVelocidadeSP = _Controle.PercentualVelocidadeSP; _ControleAnterior.PercentualVelocidadeSP = _Controle.PercentualVelocidadeSP;
} }
if (ControleDir != null && (Agora - ControleDir.UltimoComando).TotalMilliseconds > ControleDir.DelayEnvioComando) // && Convert.ToInt32(_Controle.Angulo) != Convert.ToInt32(_ControleAnterior.Angulo) if (ControleDir != null && (Agora - ControleDir.UltimoComando).TotalMilliseconds > ControleDir.DelayEnvioComando) // && Convert.ToInt32(_Controle.Angulo) != Convert.ToInt32(_ControleAnterior.Angulo)
{ {
// Enviar comando DIR // Enviar comando DIR
var Protocolos = EnviarProtocoloComando(Variaveis.OperacaoEmAndamento.DispMvd, T_Code.Dir, ForcarEnvio); var Protocolos = EnviarProtocoloComando(Variaveis.OperacaoEmAndamento.DispMvd, T_Code.Dir, ForcarEnvio);
ControleDir.UltimoComando = Agora; ControleDir.UltimoComando = Agora;
ControleDir.Comandos.AddRange(Protocolos); ControleDir.Comandos.AddRange(Protocolos);
_ControleAnterior.Angulo = _Controle.Angulo; _ControleAnterior.Angulo = _Controle.Angulo;
}
} }
AtualizarDadosOperacao(); AtualizarDadosOperacao();

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

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

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

View File

@ -1 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"Id":"1","Name":"18_12_2024_13_02_30","Length":64.9313379312302,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":null,"type":"LineString","coordinates":[[-47.381543333333333,-22.213024833333332],[-47.381543166666667,-22.213024833333332],[-47.381543166666667,-22.213025],[-47.381543166666667,-22.213025],[-47.381543166666667,-22.213025],[-47.381543166666667,-22.213025],[-47.381543166666667,-22.213025166666668],[-47.381543,-22.213025333333334],[-47.381543,-22.213025333333334],[-47.381543166666667,-22.2130255],[-47.381543166666667,-22.2130255],[-47.381543333333333,-22.213025666666667],[-47.381543333333333,-22.213025666666667],[-47.3815435,-22.213025666666667],[-47.381543666666666,-22.213025833333333],[-47.381543833333332,-22.213025666666667],[-47.381543833333332,-22.213025666666667],[-47.381544,-22.213025666666667],[-47.381541666666664,-22.213026833333334],[-47.381538666666664,-22.213029],[-47.381535666666664,-22.213034166666667],[-47.3815335,-22.213036833333334],[-47.381531333333335,-22.213043333333335],[-47.381529833333332,-22.213046333333335],[-47.381528333333335,-22.213049666666667],[-47.381528,-22.213056666666667],[-47.381528,-22.213058666666665],[-47.38152216666667,-22.213063],[-47.381518333333332,-22.213064833333334],[-47.3815135,-22.213069],[-47.38151083333333,-22.213071666666668],[-47.38150816666667,-22.213073833333333],[-47.381503,-22.213078666666668],[-47.381500333333335,-22.213081],[-47.381495166666667,-22.213086333333333],[-47.381492666666666,-22.213088833333334],[-47.381490166666666,-22.213091333333335],[-47.381483833333334,-22.213098166666665],[-47.381479666666664,-22.213101833333333],[-47.3814715,-22.213109166666666],[-47.381467833333332,-22.213112666666667],[-47.381463833333335,-22.213116166666666],[-47.381455333333335,-22.213122666666667],[-47.381451166666665,-22.213126],[-47.381442833333331,-22.213132833333333],[-47.381438833333334,-22.213136166666665],[-47.38143516666667,-22.213139833333333],[-47.381428,-22.213147166666666],[-47.381424,-22.213150666666667],[-47.381416,-22.2131575],[-47.3814125,-22.213161166666666],[-47.381408833333332,-22.213164666666668],[-47.381401333333336,-22.213172],[-47.3813975,-22.2131755],[-47.381389333333331,-22.2131825],[-47.381385833333333,-22.213186166666667],[-47.381380333333333,-22.213192833333334],[-47.381378,-22.213195333333335],[-47.3813755,-22.213198],[-47.3813705,-22.2132035],[-47.381368,-22.213206166666666],[-47.381362333333335,-22.213210833333335],[-47.381360166666667,-22.213213333333332],[-47.3813585,-22.213216166666665],[-47.381357,-22.213219166666665],[-47.38135066666667,-22.213223],[-47.3813475,-22.213223666666668],[-47.381341166666665,-22.213222833333333],[-47.381338666666664,-22.2132215],[-47.3813365,-22.213220166666666],[-47.381333,-22.213214666666666],[-47.381332333333333,-22.213211166666667],[-47.38133366666667,-22.213204833333332],[-47.381335833333331,-22.213201833333333],[-47.381339333333337,-22.213199333333332],[-47.38134766666667,-22.213197],[-47.3813505,-22.213196],[-47.3813545,-22.213191666666667],[-47.381355166666665,-22.213188166666665],[-47.381356,-22.213184333333334],[-47.38135916666667,-22.213178166666665],[-47.381360666666666,-22.2131755],[-47.3813645,-22.213169833333332],[-47.381366666666665,-22.213167166666668],[-47.381372,-22.213161666666668],[-47.3813745,-22.213159166666667],[-47.381377333333333,-22.213156833333333],[-47.381383166666666,-22.2131525],[-47.381386333333332,-22.213150333333335],[-47.381393333333335,-22.213146666666667],[-47.381397,-22.213145166666667],[-47.381400666666664,-22.213143833333334],[-47.381407,-22.213141],[-47.381408833333332,-22.213139],[-47.38141233333333,-22.213131166666667],[-47.3814135,-22.213127166666666],[-47.3814145,-22.213123833333334],[-47.381417166666665,-22.213117666666665],[-47.381418666666669,-22.213114833333332],[-47.381422,-22.213109],[-47.381424166666669,-22.213106166666666],[-47.3814265,-22.213103333333333],[-47.381431666666664,-22.213098],[-47.3814345,-22.213095333333332],[-47.3814405,-22.213090666666666],[-47.3814435,-22.213088666666668],[-47.3814505,-22.213084833333333],[-47.381453833333332,-22.213083166666667],[-47.38145733333333,-22.213081666666668],[-47.381463833333335,-22.213078666666668],[-47.381465333333331,-22.2130765],[-47.381468333333331,-22.2130695],[-47.381470333333333,-22.2130665],[-47.3814725,-22.213064],[-47.381477333333336,-22.213058833333335],[-47.38147983333333,-22.213056166666668],[-47.3814825,-22.213053666666667],[-47.3814885,-22.213049],[-47.381491333333337,-22.213046833333333],[-47.381498,-22.213043],[-47.3815015,-22.213041333333333],[-47.381503833333333,-22.213039333333334],[-47.381507,-22.213033666666668],[-47.381508,-22.2130295],[-47.381510166666665,-22.213022666666667],[-47.3815115,-22.2130195],[-47.381512833333332,-22.213016666666668],[-47.381516,-22.213010666666666],[-47.381518,-22.213007666666666],[-47.3815225,-22.213001833333333],[-47.3815225,-22.213001833333333]]}}]} {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"Id":"1","Name":"Projeto","Length":21.332976190943135,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":"0","type":"LineString","coordinates":[[-47.381495333333334,-22.213068166666666],[-47.381469166666669,-22.213091333333335],[-47.38141825,-22.213137833333334],[-47.3813925,-22.213161666666668],[-47.381369666666664,-22.2131845]]}},{"type":"Feature","properties":{"Id":"2","Name":"Projeto","Length":24.045328359726675,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":"1","type":"LineString","coordinates":[[-47.381340166666668,-22.213175666666668],[-47.381375333333331,-22.213137166666666],[-47.38140933333333,-22.213102666666668],[-47.381453666666665,-22.213058166666666],[-47.381496666666663,-22.213015666666667]]}}]}

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

View File

@ -1,47 +1 @@
{ {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"Id":"1","Name":"Projeto","Length":21.332976190943135,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":"0","type":"LineString","coordinates":[[-47.381495333333334,-22.213068166666666],[-47.381469166666669,-22.213091333333335],[-47.38141825,-22.213137833333334],[-47.3813925,-22.213161666666668],[-47.381369666666664,-22.2131845]]}},{"type":"Feature","properties":{"Id":"2","Name":"Projeto","Length":24.045328359726675,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":"1","type":"LineString","coordinates":[[-47.381340166666668,-22.213175666666668],[-47.381375333333331,-22.213137166666666],[-47.38140933333333,-22.213102666666668],[-47.381453666666665,-22.213058166666666],[-47.381496666666663,-22.213015666666667]]}}]}
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Id": "1",
"Name": "Projeto",
"Length": 21.332976190943135,
"Dist1": 0.0,
"Dist2": 0.0
},
"geometry": {
"id": null,
"type": "LineString",
"coordinates": [
[-47.381495333333334, -22.213068166666666],
[-47.38146916666667, -22.213091333333335],
[-47.38141825, -22.213137833333333],
[-47.3813925, -22.213161666666668],
[-47.381369666666664, -22.2131845]
]
}
},
{
"type": "Feature",
"properties": {
"Id": "2",
"Name": "Projeto",
"Length": 24.045328359726675,
"Dist1": 0.0,
"Dist2": 0.0
},
"geometry": {
"id": null,
"type": "LineString",
"coordinates": [
[-47.381340166666668, -22.213175666666668],
[-47.381375333333331, -22.213137166666666],
[-47.38140933333333, -22.213102666666668],
[-47.381453666666665, -22.213058166666666],
[-47.381496666666663, -22.213015666666667]
]
}
}
]
}

View File

@ -25,7 +25,7 @@
<meta name="viewport" content="width=device-width, <meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style> <style>
#map_0fff78eb96d18efec1cee81d04739815 { #map_2a97fe143e1a57c5373ce602f0b267bf {
position: relative; position: relative;
width: 100.0%; width: 100.0%;
height: 100.0%; height: 100.0%;
@ -39,14 +39,14 @@
<body> <body>
<div class="folium-map" id="map_0fff78eb96d18efec1cee81d04739815" ></div> <div class="folium-map" id="map_2a97fe143e1a57c5373ce602f0b267bf" ></div>
</body> </body>
<script> <script>
var map_0fff78eb96d18efec1cee81d04739815 = L.map( var map_2a97fe143e1a57c5373ce602f0b267bf = L.map(
"map_0fff78eb96d18efec1cee81d04739815", "map_2a97fe143e1a57c5373ce602f0b267bf",
{ {
center: [-22.213100083333334, -47.38141841666666], center: [-22.213100083333334, -47.38141841666666],
crs: L.CRS.EPSG3857, crs: L.CRS.EPSG3857,
@ -60,13 +60,13 @@
var tile_layer_34bda382118d1e677c622cff3c40dd70 = L.tileLayer( var tile_layer_cec48e9f9320eca1ecf867866cacccd7 = L.tileLayer(
"https://tile.openstreetmap.org/{z}/{x}/{y}.png", "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} {"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_34bda382118d1e677c622cff3c40dd70.addTo(map_0fff78eb96d18efec1cee81d04739815); tile_layer_cec48e9f9320eca1ecf867866cacccd7.addTo(map_2a97fe143e1a57c5373ce602f0b267bf);
@ -82,7 +82,7 @@
}*/ }*/
}); });
} }
function geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc_onEachFeature(feature, layer) { function geo_json_02e5d4ac6c7aea7e6316347630612906_onEachFeature(feature, layer) {
layer.on({ layer.on({
click: function(e) { click: function(e) {
@ -118,20 +118,20 @@
}*/ }*/
}); });
}; };
var geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc = L.geoJson(null, { var geo_json_02e5d4ac6c7aea7e6316347630612906 = L.geoJson(null, {
onEachFeature: geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc_onEachFeature, onEachFeature: geo_json_02e5d4ac6c7aea7e6316347630612906_onEachFeature,
}); });
function geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc_add (data) { function geo_json_02e5d4ac6c7aea7e6316347630612906_add (data) {
geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc geo_json_02e5d4ac6c7aea7e6316347630612906
.addData(data); .addData(data);
} }
geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc_add({"features": [{"geometry": {"coordinates": [[-47.38149533333333, -22.213068166666666], [-47.38146916666667, -22.213091333333335], [-47.38141825, -22.213137833333334], [-47.3813925, -22.213161666666668], [-47.381369666666664, -22.2131845]], "id": null, "type": "LineString"}, "id": 0, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "1", "Length": 21.332976190943135, "Name": "Projeto"}, "type": "Feature"}, {"geometry": {"coordinates": [[-47.38134016666667, -22.213175666666668], [-47.38137533333333, -22.213137166666666], [-47.38140933333333, -22.213102666666668], [-47.381453666666665, -22.213058166666666], [-47.38149666666666, -22.213015666666667]], "id": null, "type": "LineString"}, "id": 1, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "2", "Length": 24.045328359726675, "Name": "Projeto"}, "type": "Feature"}], "type": "FeatureCollection"}); geo_json_02e5d4ac6c7aea7e6316347630612906_add({"features": [{"geometry": {"coordinates": [[-47.38149533333333, -22.213068166666666], [-47.38146916666667, -22.213091333333335], [-47.38141825, -22.213137833333334], [-47.3813925, -22.213161666666668], [-47.381369666666664, -22.2131845]], "id": "0", "type": "LineString"}, "id": 0, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "1", "Length": 21.332976190943135, "Name": "Projeto"}, "type": "Feature"}, {"geometry": {"coordinates": [[-47.38134016666667, -22.213175666666668], [-47.38137533333333, -22.213137166666666], [-47.38140933333333, -22.213102666666668], [-47.381453666666665, -22.213058166666666], [-47.38149666666666, -22.213015666666667]], "id": "1", "type": "LineString"}, "id": 1, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "2", "Length": 24.045328359726675, "Name": "Projeto"}, "type": "Feature"}], "type": "FeatureCollection"});
geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc.addTo(map_0fff78eb96d18efec1cee81d04739815); geo_json_02e5d4ac6c7aea7e6316347630612906.addTo(map_2a97fe143e1a57c5373ce602f0b267bf);
</script> </script>
@ -152,7 +152,7 @@
} }
trajeto_json_add({"features": []}); trajeto_json_add({"features": []});
trajeto_json.addTo(map_0fff78eb96d18efec1cee81d04739815); trajeto_json.addTo(map_2a97fe143e1a57c5373ce602f0b267bf);
function adicionarGeometria(novaGeometria) { function adicionarGeometria(novaGeometria) {
trajeto_json.addData(novaGeometria); trajeto_json.addData(novaGeometria);
@ -210,7 +210,7 @@
} }
trajeto_dinamico_json_add({"features": []}); trajeto_dinamico_json_add({"features": []});
trajeto_dinamico_json.addTo(map_0fff78eb96d18efec1cee81d04739815); trajeto_dinamico_json.addTo(map_2a97fe143e1a57c5373ce602f0b267bf);
function adicionarGeometriaDinamica(novaGeometria) { function adicionarGeometriaDinamica(novaGeometria) {
trajeto_dinamico_json.addData(novaGeometria); trajeto_dinamico_json.addData(novaGeometria);
@ -263,9 +263,9 @@
var marcadorEquipamento = L.marker([0, 0], { var marcadorEquipamento = L.marker([0, 0], {
icon: customIcon icon: customIcon
}).addTo(map_0fff78eb96d18efec1cee81d04739815); }).addTo(map_2a97fe143e1a57c5373ce602f0b267bf);
var marcadorBase = L.marker([0, 0], {}).addTo(map_0fff78eb96d18efec1cee81d04739815); var marcadorBase = L.marker([0, 0], {}).addTo(map_2a97fe143e1a57c5373ce602f0b267bf);
var icon = L.AwesomeMarkers.icon( var icon = L.AwesomeMarkers.icon(
{"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"} {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}
); );
@ -347,7 +347,7 @@
} }
if (foco) { if (foco) {
map_0fff78eb96d18efec1cee81d04739815.setView(novaPosicao, map_0fff78eb96d18efec1cee81d04739815.getZoom()); map_2a97fe143e1a57c5373ce602f0b267bf.setView(novaPosicao, map_2a97fe143e1a57c5373ce602f0b267bf.getZoom());
} }
} }
@ -364,7 +364,7 @@
function atualizarSelecaoRuas(selecionadas) { function atualizarSelecaoRuas(selecionadas) {
selecionadas = JSON.parse(selecionadas); selecionadas = JSON.parse(selecionadas);
RuasSelecionadas = Array.isArray(selecionadas) ? [...selecionadas] : []; RuasSelecionadas = Array.isArray(selecionadas) ? [...selecionadas] : [];
geo_json_f1da1bfaa69b1a5885ba8a223c93d9bc.eachLayer(function (layer) { geo_json_02e5d4ac6c7aea7e6316347630612906.eachLayer(function (layer) {
if (RuasSelecionadas.includes(parseInt(layer.feature.id))) { if (RuasSelecionadas.includes(parseInt(layer.feature.id))) {
layer.setStyle({ color: 'blue' }); layer.setStyle({ color: 'blue' });
} else { } else {