private static void executarPosicao(LocalizacaoInfo local) { try { _ultimaLocalizacao = local; RadarBLL regraRadar = RadarFactory.create(); PercursoBLL regraPercurso = PercursoFactory.create(); if (RadarBLL.RadarAtual != null) { if (!regraRadar.radarContinuaAFrente(local, RadarBLL.RadarAtual)) { RadarBLL.RadarAtual = null; } } else { double distanciaRadar = (local.Velocidade < 90) ? PreferenciaUtils.DistanciaAlertaUrbano : PreferenciaUtils.DistanciaAlertaEstrada; RadarInfo radar = regraRadar.calcularRadar(local, distanciaRadar); if (radar != null) { local.Distancia = regraRadar.calcularDistancia(local.Latitude, local.Longitude, radar.Latitude, radar.Longitude); if (PreferenciaUtils.AlertaInteligente) { if ((local.Velocidade - 5) > radar.Velocidade) { avisarRadar(local, radar); } } else { avisarRadar(local, radar); } } } var visualPage = GlobalUtils.Visual; if (visualPage != null) { visualPage.VelocidadeAtual = (float)local.Velocidade; visualPage.Precisao = local.Precisao; visualPage.Sentido = local.Sentido; RadarInfo radar = RadarBLL.RadarAtual; if (radar != null) { visualPage.VelocidadeRadar = radar.Velocidade; visualPage.DistanciaRadar = (float)local.Distancia; } else { visualPage.VelocidadeRadar = 0; visualPage.DistanciaRadar = 0; } visualPage.atualizarPosicao(local); visualPage.redesenhar(); } regraPercurso.executarGravacao(local); } catch (Exception e) { ErroPage.exibir(e); } }
private static LocalizacaoInfo executarPosicao(LocalizacaoInfo local) { try { var regraPercurso = PercursoFactory.create(); if (PreferenciaUtils.SalvarPercurso && !PercursoUtils.Gravando && local.Velocidade > 20) { var inicializou = regraPercurso.iniciarGravacao(); } _ultimaLocalizacao = local; RadarBLL regraRadar = RadarFactory.create(); if (RadarBLL.RadarAtual != null) { if (regraRadar.radarContinuaAFrente(local, RadarBLL.RadarAtual)) { RadarInfo radar = RadarBLL.RadarAtual; local.Distancia = calcularDistancia(local.Latitude, local.Longitude, radar.Latitude, radar.Longitude); } else { RadarBLL.RadarAtual = null; } } else { double distanciaRadar = (local.Velocidade < 90) ? PreferenciaUtils.DistanciaAlertaUrbano : PreferenciaUtils.DistanciaAlertaEstrada; RadarInfo radar = regraRadar.calcularRadar(local, distanciaRadar); if (radar != null) { local.Distancia = calcularDistancia(local.Latitude, local.Longitude, radar.Latitude, radar.Longitude); if (PreferenciaUtils.AlertaInteligente) { if ((local.Velocidade - 5) > radar.Velocidade) { avisarRadar(local, radar); } } else { if (local.Velocidade > 15) { avisarRadar(local, radar); } } } } regraPercurso.executarGravacao(local, RadarBLL.RadarAtual); var visualPage = GlobalUtils.Visual; if (visualPage != null) { visualPage.VelocidadeAtual = (float)local.Velocidade; visualPage.Precisao = local.Precisao; visualPage.Sentido = local.Sentido; RadarInfo radar = RadarBLL.RadarAtual; if (radar != null) { visualPage.VelocidadeRadar = radar.Velocidade; visualPage.DistanciaRadar = (float)local.Distancia; } else { visualPage.VelocidadeRadar = 0; visualPage.DistanciaRadar = 0; } visualPage.atualizarPosicao(local); visualPage.redesenhar(); } //regraPercurso.executarGravacao(local, RadarBLL.RadarAtual); //MensagemUtils.avisar(MemoryUtils.getInfo().ToString()); } catch (Exception e) { ErroPage.exibir(e); } return(local); }