ajustado APIService e fixação Ntrip na base
This commit is contained in:
parent
19392738f7
commit
c9c1d37df8
|
|
@ -5,6 +5,7 @@ using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Net.Http.Headers;
|
using System.Net.Http.Headers;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace AgroBase.Services
|
namespace AgroBase.Services
|
||||||
|
|
@ -26,28 +27,7 @@ namespace AgroBase.Services
|
||||||
return "https://zendioninc.com.br/agrobase/downloads";
|
return "https://zendioninc.com.br/agrobase/downloads";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private static bool _hasInternet
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
using (var client = new WebClient())
|
|
||||||
{
|
|
||||||
using (client.OpenRead("https://zendioninc.com.br/"))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static bool HasInternet { get; set; }
|
public static bool HasInternet { get; set; }
|
||||||
public static bool HasInternetNow() => _hasInternet;
|
|
||||||
|
|
||||||
public static async Task IniciarRotinasAsync()
|
public static async Task IniciarRotinasAsync()
|
||||||
{
|
{
|
||||||
|
|
@ -64,9 +44,42 @@ namespace AgroBase.Services
|
||||||
tmrMonitoramento.Start();
|
tmrMonitoramento.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static readonly HttpClient _internetClient = new HttpClient { Timeout = TimeSpan.FromSeconds(3) };
|
||||||
|
|
||||||
|
public static async Task<bool> HasInternetNowAsync(CancellationToken ct = default)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var request =
|
||||||
|
new HttpRequestMessage(
|
||||||
|
HttpMethod.Get,
|
||||||
|
"https://zendioninc.com.br/"
|
||||||
|
);
|
||||||
|
|
||||||
|
var response =
|
||||||
|
await _internetClient.SendAsync(
|
||||||
|
request,
|
||||||
|
HttpCompletionOption.ResponseHeadersRead,
|
||||||
|
ct
|
||||||
|
).ConfigureAwait(false);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Qualquer resposta HTTP significa que DNS,
|
||||||
|
* TCP e HTTPS chegaram ao servidor.
|
||||||
|
*/
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static async Task tmrMonitoramento_Tick()
|
private static async Task tmrMonitoramento_Tick()
|
||||||
{
|
{
|
||||||
HasInternet = HasInternetNow();
|
HasInternet =
|
||||||
|
await HasInternetNowAsync()
|
||||||
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Método para GET
|
// Método para GET
|
||||||
|
|
|
||||||
|
|
@ -2062,21 +2062,13 @@ namespace OperationControl.Services
|
||||||
|
|
||||||
private async Task AplicarCorrecaoRTK_NtripAsync(CancellationToken ct)
|
private async Task AplicarCorrecaoRTK_NtripAsync(CancellationToken ct)
|
||||||
{
|
{
|
||||||
if (!IsConnected || !APIService.HasInternet)
|
if (!IsConnected)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
double backoffSeconds = 1.0;
|
double backoffSeconds = 1.0;
|
||||||
|
|
||||||
while (!ct.IsCancellationRequested && CorrecaoRTK_Ntrip)
|
while (!ct.IsCancellationRequested && CorrecaoRTK_Ntrip)
|
||||||
{
|
{
|
||||||
if (!APIService.HasInternet)
|
|
||||||
{
|
|
||||||
Ntrip_Conectado = false;
|
|
||||||
LimparNtripAtivo();
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(2), ct).ConfigureAwait(false);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<NtripProviderConfig> providers = ObterSequenciaProvedoresNtrip();
|
List<NtripProviderConfig> providers = ObterSequenciaProvedoresNtrip();
|
||||||
|
|
||||||
if (providers.Count == 0)
|
if (providers.Count == 0)
|
||||||
|
|
@ -3796,9 +3788,6 @@ namespace OperationControl.Services
|
||||||
Func<Task> stopNtrip = null,
|
Func<Task> stopNtrip = null,
|
||||||
CancellationToken ct = default)
|
CancellationToken ct = default)
|
||||||
{
|
{
|
||||||
if (!APIService.HasInternetNow())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
await ConfigurarComoRoverParadoAsync(portaUsb, portaEntrada, ct)
|
await ConfigurarComoRoverParadoAsync(portaUsb, portaEntrada, ct)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue