This commit is contained in:
Diego Freitas 2025-02-07 16:27:13 -03:00
parent c41e73a874
commit 838ae7770f
31 changed files with 127 additions and 72 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -436,6 +436,7 @@
<Compile Include="Models\DispositivosModel.cs" />
<Compile Include="Models\GPSModel.cs" />
<Compile Include="Models\GraficoInterativoModel.cs" />
<Compile Include="Models\KalmanFilter.cs" />
<Compile Include="Models\KinectModel.cs" />
<Compile Include="Models\LoRaModel.cs" />
<Compile Include="Models\MapaDinamicoModel.cs" />

View File

@ -379,14 +379,16 @@ namespace AgroBase.Forms
private void pnlOrientacaoGPS_Paint(object sender, PaintEventArgs e)
{
double Angulo = GPSService.UltimaLeitura.CursoVerdadeiro;
FuncoesGlobais.DesenharInclinacao((Panel)sender, e, (float)Angulo, -90);
double Angulo = GPSService.UltimaLeitura.OrientacaoReal;
double AnguloMovimento = GPSService.UltimaLeitura.OrientacaoReal;
FuncoesGlobais.DesenharInclinacao((Panel)sender, e, (float)Angulo, -90, (float)AnguloMovimento);
}
private void pnlOrientacaoMagnetometro_Paint(object sender, PaintEventArgs e)
{
double Angulo = Variaveis.OperacaoEmAndamento.Sensoriamento.WitMotion.AnguloCorrigido;
FuncoesGlobais.DesenharInclinacao((Panel)sender, e, (float)Angulo, -90);
double AnguloCorrigido = Variaveis.OperacaoEmAndamento.Sensoriamento.WitMotion.AnguloCorrigido;
FuncoesGlobais.DesenharInclinacao((Panel)sender, e, (float)Angulo, -90, (float)AnguloCorrigido);
}

View File

@ -0,0 +1,41 @@
namespace AgroBase.Models
{
public class KalmanFilter
{
private double _valorEstimado; // Estado estimado (Temperatura filtrada)
private double _erroEstimado; // Erro da estimativa
private double _erroMedicao; // Incerteza da medição (ruído do sensor)
private double _erroProcesso; // Incerteza do modelo (ajuste fino)
public KalmanFilter(double erroMedicao = 2.0, double erroProcesso = 0.1)
{
_erroMedicao = erroMedicao;
_erroProcesso = erroProcesso;
_valorEstimado = 0;
_erroEstimado = 1; // Inicializa com uma incerteza grande
}
public double Filtrar(double valorMedido)
{
// 1. Predição
_erroEstimado += _erroProcesso;
// 2. Cálculo do ganho de Kalman
double ganhoKalman = _erroEstimado / (_erroEstimado + _erroMedicao);
// 3. Atualização do estado estimado
_valorEstimado = _valorEstimado + ganhoKalman * (valorMedido - _valorEstimado);
// 4. Atualização do erro estimado
_erroEstimado = (1 - ganhoKalman) * _erroEstimado;
return _valorEstimado;
}
public void Reset(double novoValorEstimado = 0)
{
_valorEstimado = novoValorEstimado;
_erroEstimado = 1;
}
}
}

View File

@ -1273,6 +1273,8 @@ namespace AgroBase.Models.Modules
}
}
private KalmanFilter filtroKalman = new KalmanFilter(erroMedicao: 1.0, erroProcesso: 0.05);
private void AtualizarTemperatura()
{
if (Variaveis.OperacaoEmAndamento.DispSen != null)
@ -1282,7 +1284,9 @@ namespace AgroBase.Models.Modules
{
if (double.TryParse(Sensor.Parametros[0][1].Replace(".", ","), out double fatorCalibracao))
{
_atual = FuncoesMatematicas.CalcularTemperatura(_leitura, fatorCalibracao);
double temperaturaAtual = FuncoesMatematicas.CalcularTemperatura(_leitura, fatorCalibracao);
_atual = filtroKalman.Filtrar(temperaturaAtual);
AtualizarExtremos();
}
@ -1293,7 +1297,7 @@ namespace AgroBase.Models.Modules
}
}
}
private void AtualizarExtremos()
{
if (_atual > ValorMaximo)

View File

@ -806,6 +806,8 @@ namespace AgroBase.Models
Controle.Angulo = 0;
Controle.PercentualVelocidadeSP = 0;
Controle.TiposControle.ForEach(x => x.UltimaDirecao = Direcao.Parado);
Controle.TipoMovimento = TipoMovimentoDirecional.RodasDianteiras;
GPSTrajetoria = new List<GPSModel>();

View File

@ -1066,26 +1066,31 @@ namespace AgroBase.Models
return Tc;
}*/
public static double CalcularTemperatura(double leitura, double offset)
public static double CalcularTemperatura(double leitura, double offset = 0.0)
{
double Vs = 5.0; // TENSÃO DE SAÍDA DO ESP32
double Beta = 3950; // VALOR DE BETA
double To = 298.15; // VALOR EM KELVIN REFERENTE A 25° CELSIUS
double Ro = 10000; // RESISTÊNCIA DO NTC A 25°C
double adcMax = 4096.0;
double Vout, Rt = 0;
double T, Tc, Tf, adc = 0;
double Vs = 5.0; // Tensão de referência do divisor de tensão
double Beta = 3950.0; // Coeficiente Beta do NTC
double To = 298.15; // Temperatura em Kelvin correspondente a 25°C
double Ro = 10000.0; // Resistência do NTC a 25°C
double adcMax = 4095.0; // Valor máximo do ADC (12 bits ESP32)
// CALCULOS PARA CONVERSÃO DA LEITURA RECEBIDA PELO ESP32 EM TEMPERATURA EM °C
Vout = (leitura * Vs / adcMax) + offset;
Rt = Ro * (Vs / Vout - 1);
T = 1 / (1 / To + Math.Log(Rt / Ro) / Beta);
Tc = T - 273.15;
Tf = Tc * 9 / 5 + 32;
// Calcula a tensão de saída do divisor
double Vout = leitura * Vs / adcMax;
Tc = Math.Round(Tc, 2);
// ⚠️ Evita erros matemáticos para valores extremos ⚠️
if (Vout <= 0.001) return -100.0; // Se tensão for quase zero, temperatura muito baixa
if (Vout >= Vs) return double.NaN; // Se Vout for igual a Vs, leitura inválida
return Tc;
// Calcula a resistência do NTC
double Rt = Ro * (Vout / (Vs - Vout));
// Aplica a equação de Steinhart-Hart para calcular a temperatura em Kelvin
double T = 1.0 / (1.0 / To + Math.Log(Rt / Ro) / Beta);
// Converte Kelvin para Celsius e aplica offset
double Tc = T - 273.15 + offset;
return Math.Round(Tc, 2);
}
public static bool ValorEstaEntre(double valorAtual, double valorComparar, double margem)

View File

@ -49,16 +49,10 @@ namespace AgroBase.Models
{
get
{
double angulo = AngleZ * -1;
// ✅ Ajusta para o intervalo de 0° a 360° (caso o sensor use -180° a 180°)
if (angulo < 0)
{
angulo += 360;
}
double angulo = AngleZ;
// ✅ Aplica o offset armazenado
return GPSUtils.NormalizarAngulo(angulo + Offset);
return GPSUtils.NormalizarAngulo(GPSUtils.NormalizarAngulo(angulo) + Offset);
}
}
public double Offset { get; set; } = 0.0;

View File

@ -17274,3 +17274,18 @@ Parameter name: source
21/01/2025 16:05:46:534 - Endereço 245 (192.168.105.11): Dados recebidos de um endereço inválido: [3 245 2 245]
21/01/2025 16:05:46:534 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
21/01/2025 16:05:46:538 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
07/02/2025 10:55:35:412 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
07/02/2025 10:55:36:424 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
07/02/2025 10:55:36:447 - Endereço 0 (192.168.105.11): Dados recebidos de um endereço inválido: [0 0 0 49]
07/02/2025 10:55:36:448 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
07/02/2025 10:55:39:622 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=38
07/02/2025 10:55:39:677 - Endereço 3 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
07/02/2025 10:55:43:752 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
07/02/2025 10:55:44:765 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
07/02/2025 10:55:44:834 - Endereço 0 (192.168.105.11): Dados recebidos de um endereço inválido: [0 0 0 49]
07/02/2025 10:55:44:834 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
07/02/2025 10:59:10:025 - Endereço 183 (192.168.105.11): Dados recebidos de um endereço inválido: [251 183 159 115 63 0 0 74]
07/02/2025 10:59:10:026 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
07/02/2025 10:59:20:105 - Endereço 255 (192.168.105.11): Dados recebidos de um endereço inválido: [251 255]
07/02/2025 10:59:20:105 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
07/02/2025 10:59:20:110 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1

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":"Projeto","Length":18.756481705452444,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":null,"type":"LineString","coordinates":[[-47.381512499333333,-22.213061154333332],[-47.381510181333333,-22.213062349833333],[-47.381500667666664,-22.213069215666668],[-47.3814908815,-22.213079438],[-47.381471168333334,-22.213100436833333],[-47.381461121666668,-22.213110202666666],[-47.381451365333334,-22.213120137833332],[-47.381442255,-22.213130008],[-47.381433238,-22.213139528666666],[-47.381424274666664,-22.213148655666668],[-47.381414815166664,-22.213157379833333],[-47.381405262166666,-22.213165999166666],[-47.381387444333335,-22.213183132]]}},{"type":"Feature","properties":{"Id":"2","Name":"Projeto","Length":18.103900478084427,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":null,"type":"LineString","coordinates":[[-47.381364432833337,-22.213183990333334],[-47.38137163333333,-22.213180708166668],[-47.381385627,-22.213166390833333],[-47.381395442166664,-22.2131567575],[-47.381404613333331,-22.213146998666666],[-47.3814138205,-22.213137222166665],[-47.381422880666669,-22.213127438166666],[-47.381431791333334,-22.213117842],[-47.381440839666666,-22.213108489666666],[-47.381450002833333,-22.213099289166667],[-47.3814684915,-22.213081996333333],[-47.381476749833332,-22.213074368166666],[-47.381485362833331,-22.2130667915]]}}]}
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"Id":"1","Name":"07_02_2025_10_55_32","Length":0.0,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":null,"type":"LineString","coordinates":[[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0],[0.0,0.0]]}}]}

View File

@ -25,7 +25,7 @@
<meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
#map_0cac5caafcfd6e0ada0ac33de2fb77e5 {
#map_ef348442bae896c3c572cafbe1f87358 {
position: relative;
width: 100.0%;
height: 100.0%;
@ -39,14 +39,14 @@
<body>
<div class="folium-map" id="map_0cac5caafcfd6e0ada0ac33de2fb77e5" ></div>
<div class="folium-map" id="map_ef348442bae896c3c572cafbe1f87358" ></div>
</body>
<script>
var map_0cac5caafcfd6e0ada0ac33de2fb77e5 = L.map(
"map_0cac5caafcfd6e0ada0ac33de2fb77e5",
var map_ef348442bae896c3c572cafbe1f87358 = L.map(
"map_ef348442bae896c3c572cafbe1f87358",
{
center: [0.0, 0.0],
crs: L.CRS.EPSG3857,
@ -60,13 +60,13 @@
var tile_layer_f5c29badc645479914044206ca129b5e = L.tileLayer(
var tile_layer_724896fb6ea036ac2430b30704c3af2a = 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_f5c29badc645479914044206ca129b5e.addTo(map_0cac5caafcfd6e0ada0ac33de2fb77e5);
tile_layer_724896fb6ea036ac2430b30704c3af2a.addTo(map_ef348442bae896c3c572cafbe1f87358);
</script>
@ -87,7 +87,7 @@
}
trajeto_json_add({"features": []});
trajeto_json.addTo(map_0cac5caafcfd6e0ada0ac33de2fb77e5);
trajeto_json.addTo(map_ef348442bae896c3c572cafbe1f87358);
function adicionarGeometria(novaGeometria) {
trajeto_json.addData(novaGeometria);
@ -145,7 +145,7 @@
var marcadorDinamico = L.marker([0, 0], {
icon: customIcon
}).addTo(map_0cac5caafcfd6e0ada0ac33de2fb77e5);
}).addTo(map_ef348442bae896c3c572cafbe1f87358);
// Conectar ao broker MQTT
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
@ -183,7 +183,7 @@
marcadorDinamico.setRotationAngle(angulo);
adicionarCoordenada("Tj", [novaLongitude, novaLatitude]);
map_0cac5caafcfd6e0ada0ac33de2fb77e5.setView(novaPosicao, map_0cac5caafcfd6e0ada0ac33de2fb77e5.getZoom());
map_ef348442bae896c3c572cafbe1f87358.setView(novaPosicao, map_ef348442bae896c3c572cafbe1f87358.getZoom());
});
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {

View File

@ -25,7 +25,7 @@
<meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
#map_4b7d2785b1cde75bf7dcc21ad9fe7dd2 {
#map_fa97b23a69c3c2cf55f78366d38ca34b {
position: relative;
width: 100.0%;
height: 100.0%;
@ -39,16 +39,16 @@
<body>
<div class="folium-map" id="map_4b7d2785b1cde75bf7dcc21ad9fe7dd2" ></div>
<div class="folium-map" id="map_fa97b23a69c3c2cf55f78366d38ca34b" ></div>
</body>
<script>
var map_4b7d2785b1cde75bf7dcc21ad9fe7dd2 = L.map(
"map_4b7d2785b1cde75bf7dcc21ad9fe7dd2",
var map_fa97b23a69c3c2cf55f78366d38ca34b = L.map(
"map_fa97b23a69c3c2cf55f78366d38ca34b",
{
center: [-22.213122572333333, -47.38143846608334],
center: [0.0, 0.0],
crs: L.CRS.EPSG3857,
zoom: 12,
zoomControl: true,
@ -60,15 +60,6 @@
var tile_layer_00b4ed956c2ce12408b331b2a717174b = 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_00b4ed956c2ce12408b331b2a717174b.addTo(map_4b7d2785b1cde75bf7dcc21ad9fe7dd2);
var trajetosSelecionados = {};
@ -82,7 +73,7 @@
}*/
});
}
function geo_json_285c90a014368e482ca54588173263fd_onEachFeature(feature, layer) {
function geo_json_842ad261799e6798dd2c0c56607d5d8b_onEachFeature(feature, layer) {
layer.on({
click: function(e) {
@ -118,20 +109,20 @@
}*/
});
};
var geo_json_285c90a014368e482ca54588173263fd = L.geoJson(null, {
onEachFeature: geo_json_285c90a014368e482ca54588173263fd_onEachFeature,
var geo_json_842ad261799e6798dd2c0c56607d5d8b = L.geoJson(null, {
onEachFeature: geo_json_842ad261799e6798dd2c0c56607d5d8b_onEachFeature,
});
function geo_json_285c90a014368e482ca54588173263fd_add (data) {
geo_json_285c90a014368e482ca54588173263fd
function geo_json_842ad261799e6798dd2c0c56607d5d8b_add (data) {
geo_json_842ad261799e6798dd2c0c56607d5d8b
.addData(data);
}
geo_json_285c90a014368e482ca54588173263fd_add({"features": [{"geometry": {"coordinates": [[-47.38151249933333, -22.21306115433333], [-47.38151018133333, -22.213062349833333], [-47.381500667666664, -22.213069215666668], [-47.3814908815, -22.213079438], [-47.381471168333334, -22.213100436833333], [-47.38146112166667, -22.213110202666666], [-47.381451365333334, -22.213120137833332], [-47.381442255, -22.213130008], [-47.381433238, -22.213139528666666], [-47.381424274666664, -22.213148655666668], [-47.381414815166664, -22.213157379833333], [-47.381405262166666, -22.213165999166666], [-47.381387444333335, -22.213183132]], "id": null, "type": "LineString"}, "id": 0, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "1", "Length": 18.756481705452444, "Name": "Projeto"}, "type": "Feature"}, {"geometry": {"coordinates": [[-47.38136443283334, -22.213183990333334], [-47.38137163333333, -22.213180708166668], [-47.381385627, -22.213166390833333], [-47.381395442166664, -22.2131567575], [-47.38140461333333, -22.213146998666666], [-47.3814138205, -22.213137222166665], [-47.38142288066667, -22.213127438166666], [-47.381431791333334, -22.213117842], [-47.381440839666666, -22.213108489666666], [-47.38145000283333, -22.213099289166667], [-47.3814684915, -22.213081996333333], [-47.38147674983333, -22.213074368166666], [-47.38148536283333, -22.2130667915]], "id": null, "type": "LineString"}, "id": 1, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "2", "Length": 18.103900478084427, "Name": "Projeto"}, "type": "Feature"}], "type": "FeatureCollection"});
geo_json_842ad261799e6798dd2c0c56607d5d8b_add({"features": [{"geometry": {"coordinates": [[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], "id": null, "type": "LineString"}, "id": 0, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "1", "Length": 0.0, "Name": "07_02_2025_10_55_32"}, "type": "Feature"}], "type": "FeatureCollection"});
geo_json_285c90a014368e482ca54588173263fd.addTo(map_4b7d2785b1cde75bf7dcc21ad9fe7dd2);
geo_json_842ad261799e6798dd2c0c56607d5d8b.addTo(map_fa97b23a69c3c2cf55f78366d38ca34b);
</script>
@ -152,7 +143,7 @@
}
trajeto_json_add({"features": []});
trajeto_json.addTo(map_4b7d2785b1cde75bf7dcc21ad9fe7dd2);
trajeto_json.addTo(map_fa97b23a69c3c2cf55f78366d38ca34b);
function adicionarGeometria(novaGeometria) {
trajeto_json.addData(novaGeometria);
@ -210,7 +201,7 @@
}
trajeto_dinamico_json_add({"features": []});
trajeto_dinamico_json.addTo(map_4b7d2785b1cde75bf7dcc21ad9fe7dd2);
trajeto_dinamico_json.addTo(map_fa97b23a69c3c2cf55f78366d38ca34b);
function adicionarGeometriaDinamica(novaGeometria) {
trajeto_dinamico_json.addData(novaGeometria);
@ -263,9 +254,9 @@
var marcadorEquipamento = L.marker([0, 0], {
icon: customIcon
}).addTo(map_4b7d2785b1cde75bf7dcc21ad9fe7dd2);
}).addTo(map_fa97b23a69c3c2cf55f78366d38ca34b);
var marcadorBase = L.marker([0, 0], {}).addTo(map_4b7d2785b1cde75bf7dcc21ad9fe7dd2);
var marcadorBase = L.marker([0, 0], {}).addTo(map_fa97b23a69c3c2cf55f78366d38ca34b);
var icon = L.AwesomeMarkers.icon(
{"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}
);
@ -347,7 +338,7 @@
}
if (foco) {
map_4b7d2785b1cde75bf7dcc21ad9fe7dd2.setView(novaPosicao, map_4b7d2785b1cde75bf7dcc21ad9fe7dd2.getZoom());
map_fa97b23a69c3c2cf55f78366d38ca34b.setView(novaPosicao, map_fa97b23a69c3c2cf55f78366d38ca34b.getZoom());
}
}
@ -364,7 +355,7 @@
function atualizarSelecaoRuas(selecionadas) {
selecionadas = JSON.parse(selecionadas);
RuasSelecionadas = Array.isArray(selecionadas) ? [...selecionadas] : [];
geo_json_285c90a014368e482ca54588173263fd.eachLayer(function (layer) {
geo_json_842ad261799e6798dd2c0c56607d5d8b.eachLayer(function (layer) {
if (RuasSelecionadas.includes(parseInt(layer.feature.id))) {
layer.setStyle({ color: 'blue' });
} else {

View File

@ -1 +1 @@
04cf92506c904272b6d4127278cfd5a6909027f7ffee7ab924cdb48e561c8abb
81fe9c78cbc1f5ab2cd3f9316a5d613f1f4cb124703ffa6ef0eaf8cf91c94c6e

View File

@ -482,4 +482,4 @@ C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.Forms.frmA05Conf
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.Forms.frmEthernet.resources
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.Forms.frmOID.resources
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.Forms.frmTreinamentoIA.resources
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.Up2Date
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.CopyComplete

File diff suppressed because one or more lines are too long