Saltar al contenido principal

Conectar un receptor

Mapit GIS admite receptores GNSS externos para conseguir una precisión centimétrica. En Android puedes conectar un receptor por Bluetooth (lo más habitual), Bluetooth Low Energy (BLE), serie USB, TCP/IP (receptores conectados a la red o flujos NTRIP) o mediante una aplicación complementaria de terceros que canaliza los datos de ubicación a través del sistema de ubicaciones simuladas de Android. En iOS puedes conectarte por Bluetooth Low Energy (BLE) o TCP/IP.

Solo puede haber un método de conexión activo a la vez: al activar uno se desactivan automáticamente los demás.

Conexión por Bluetooth

La mayoría de los receptores GNSS externos se comunican por Bluetooth mediante el perfil de puerto serie (SPP). Es un flujo de datos serie que transporta sentencias NMEA del receptor a la aplicación.

Emparejar un dispositivo

  1. Abre Ajustes desde el menú principal.
  2. Ve a GNSS externo.
  3. Activa GPS Bluetooth emparejado.
  4. La aplicación solicita los permisos de Bluetooth (BLUETOOTH_CONNECT y BLUETOOTH_SCAN en Android 12 y posteriores).
  5. Aparece un cuadro de selección con todos los dispositivos Bluetooth vinculados (emparejados), con su nombre y su dirección MAC.
  6. Elige tu receptor. La dirección y el nombre del dispositivo se guardan para las próximas sesiones.
tip

Empareja primero el receptor con tu dispositivo Android desde Ajustes de Android > Bluetooth, antes de abrir Mapit GIS. La aplicación solo muestra los dispositivos ya emparejados: no realiza búsqueda de dispositivos Bluetooth.

Proceso de conexión

Al iniciarse una sesión de GNSS por Bluetooth, la aplicación intenta conectarse por cuatro métodos sucesivos, con reintentos automáticos:

MétodoDescripción
UUID del dispositivoUsa el UUID que anuncia el propio receptor
UUID SPP estándarUsa el UUID estándar del perfil de puerto serie (00001101-0000-1000-8000-00805F9B34FB)
RFCOMM inseguroUsa un canal RFCOMM inseguro; útil con receptores antiguos que rechazan las conexiones seguras
Canal directoAbre el canal RFCOMM 1 directamente por reflexión; último recurso para receptores que no anuncian ningún UUID

Cada método se reintenta hasta dos veces antes de pasar al siguiente. Una vez establecida la conexión, la aplicación empieza a leer sentencias NMEA del flujo de datos del receptor.

Correcciones RTCM por Bluetooth

Cuando hay una sesión del cliente NTRIP activa, los datos de corrección RTCM se envían de vuelta al receptor por esa misma conexión Bluetooth SPP. El enlace serie bidireccional permite que las correcciones lleguen al receptor en tiempo real para el posicionamiento RTK.

Tiempo de espera de datos

Si no llegan datos durante 5 segundos tras establecer la conexión, la aplicación la considera obsoleta y se desconecta. Así se evita que la aplicación parezca conectada cuando el receptor se ha dormido o está fuera de alcance.

Servicio en primer plano

Mientras hay conexión, la aplicación ejecuta un servicio en primer plano de GNSS externo para impedir que Android corte la conexión en segundo plano. Una notificación permanente confirma que la conexión GNSS está activa. Ese servicio mantiene además un bloqueo de activación de CPU para que el procesador siga funcionando con la pantalla apagada.


Conexión por Bluetooth Low Energy (BLE)

Algunos receptores GNSS modernos, como la serie ArduSimple, se comunican por Bluetooth Low Energy mediante el perfil Nordic UART Service (NUS) en lugar del Bluetooth clásico SPP. BLE consume menos energía y es el método de conexión preferible en los receptores que lo admiten.

Buscar dispositivos

  1. Abre Ajustes > GNSS externo.
  2. Activa GPS por BLE.
  3. La aplicación solicita los permisos de Bluetooth (BLUETOOTH_CONNECT y BLUETOOTH_SCAN en Android 12 y posteriores).
  4. Aparece un cuadro de búsqueda que localiza automáticamente los dispositivos BLE cercanos que anuncian el UUID del servicio NUS.
  5. La búsqueda dura hasta 15 segundos en modo de baja latencia.
  6. Elige tu receptor en la lista. El nombre y la dirección del dispositivo se guardan para las próximas sesiones.
tip

A diferencia del Bluetooth clásico, BLE no exige emparejar antes el dispositivo en los ajustes de Android. La aplicación descubre los receptores GNSS BLE directamente en el cuadro de búsqueda.

Proceso de conexión

Al iniciarse una sesión de GNSS por BLE, la aplicación se conecta al dispositivo elegido con el cliente GATT (Generic Attribute Profile) de Android. La secuencia de conexión es:

  1. Conexión GATT: establece un enlace BLE con el receptor.
  2. Descubrimiento de servicios: localiza el Nordic UART Service (NUS) en el dispositivo.
  3. Activación de notificaciones: se suscribe a la característica TX del NUS (del receptor al teléfono) escribiendo el descriptor CCCD.
  4. Negociación de MTU: solicita una MTU mayor (hasta 512 bytes) para transferir datos con eficiencia.
  5. Flujo NMEA: la aplicación empieza a leer sentencias NMEA de las notificaciones BLE.

Correcciones RTCM por BLE

Cuando hay una sesión del cliente NTRIP activa, los datos de corrección RTCM se envían de vuelta al receptor por BLE escribiendo en la característica RX del NUS. La aplicación fragmenta automáticamente los datos RTCM en segmentos del tamaño de la MTU para entregarlos con fiabilidad.

Tiempo de espera de datos

Si no llegan datos NMEA durante 5 segundos, la aplicación considera perdida la conexión y se desconecta. Así se garantiza que la información GPS se borre enseguida si el receptor se apaga o queda fuera de alcance, en lugar de esperar al tiempo de supervisión de BLE.

Reconexión automática

Si la conexión BLE se corta de forma inesperada (por ejemplo, si el receptor queda fuera de alcance un momento), la aplicación espera 2 segundos y después intenta reconectarse automáticamente. Si la desconexión es deliberada, provocada por el usuario o por el tiempo de espera de datos, no se intenta ninguna reconexión.

Servicio en primer plano

Con conexión por BLE, la aplicación ejecuta un servicio en primer plano de GNSS externo con bloqueo de activación de CPU, igual que con el Bluetooth clásico. El bloqueo de wifi y la devolución de llamada de red no se usan en las conexiones BLE, porque no interviene ninguna red.


Conexión serie por USB

En los receptores GNSS conectados por cable USB OTG (On-The-Go), la aplicación puede leer los datos NMEA directamente por una conexión serie USB. Resulta útil con receptores que no tienen Bluetooth, o cuando necesitas una conexión por cable más fiable en sesiones de levantamiento largas.

Configuración

  1. Abre Ajustes > GNSS externo.
  2. Activa GPS por serie USB.
  3. Elige la velocidad en baudios adecuada para tu receptor (predeterminada: 115200).

Se admiten estas velocidades:

Baudios
4800
9600
19200
38400
57600
115200
230400
460800
921600
tip

La mayoría de los receptores GNSS modernos usan 115200 baudios de forma predeterminada. Consulta la documentación de tu receptor si no sabes qué velocidad usar.

Proceso de conexión

  1. Conecta el receptor GNSS a tu dispositivo Android con un cable o adaptador USB OTG.
  2. La aplicación detecta automáticamente los dispositivos serie USB mediante los controladores estándar USB CDC/ACM y FTDI/CH340/CP210x/PL2303.
  3. Android pide permiso de USB la primera vez que se conecta un dispositivo.
  4. Una vez concedido, la aplicación abre el puerto serie con la velocidad configurada (8 bits de datos, 1 bit de parada, sin paridad) y empieza a leer sentencias NMEA.

Correcciones RTCM por USB

Cuando hay una sesión del cliente NTRIP activa, los datos de corrección RTCM se envían al receptor por esa misma conexión serie USB. El enlace serie bidireccional hace del USB una opción ideal para los flujos RTK en los que las correcciones deben llegar al receptor con la mínima latencia.

Detección de desconexión del cable

La aplicación escucha el aviso USB_DEVICE_DETACHED de Android. Cuando el cable USB se desconecta físicamente, la aplicación lo detecta al instante y limpia la conexión: no hay ninguna espera.

Recuperación de errores

Si se producen errores de lectura por USB (por ejemplo, por ruido eléctrico o una conexión floja), la aplicación reintenta con 1 segundo de espera entre intentos. Tras 5 errores de lectura consecutivos, considera perdida la conexión y se desconecta.

Servicio en primer plano

Con conexión por USB, la aplicación ejecuta un servicio en primer plano de GNSS externo con bloqueo de activación de CPU, para que la conexión no se interrumpa con la pantalla apagada.


Conexión por TCP/IP

Para receptores GNSS conectados a la red, casters NTRIP o datos GNSS retransmitidos desde un PC, puedes conectarte por TCP/IP.

Configuración

  1. Abre Ajustes > GNSS externo.
  2. Activa GPS por TCP.
  3. Introduce el nombre de host o la dirección IP del servidor (predeterminado: localhost).
  4. Introduce el número de puerto (predeterminado: 52003).

Configuración del socket

La conexión TCP está ajustada para datos GNSS en tiempo real:

AjusteValorFinalidad
Keep-aliveActivadoEvita que el router o el cortafuegos corten la sesión por inactividad
TCP no-delayActivadoDesactiva el algoritmo de Nagle para entregar el NMEA con baja latencia
Tiempo de espera de lectura90 segundosTolera los periodos de silencio de los flujos NTRIP y a la vez detecta conexiones muertas

Correcciones RTCM por TCP

Cuando hay una sesión del cliente NTRIP activa, los datos de corrección RTCM se envían al receptor por ese mismo socket TCP. Resulta útil con receptores que aceptan correcciones por su interfaz de red, o cuando las correcciones se retransmiten a través de un PC o un dispositivo complementario.

Reconexión automática

Si la conexión TCP se corta de forma inesperada, la aplicación intenta reconectarse automáticamente:

  • Hasta 3 reintentos con retroceso exponencial (2 s, 4 s, 8 s).
  • Un aviso muestra «Conexión perdida, reconectando (intento X)...».
  • Si fallan todos los reintentos, la aplicación vuelve al GPS interno.

Servicio en primer plano

El servicio en primer plano de TCP adquiere además un bloqueo de wifi (modo de baja latencia) y registra una devolución de llamada de red para impedir que Android apague la radio wifi durante la sesión.


Aplicaciones complementarias de terceros

Algunos fabricantes de GNSS ofrecen sus propias aplicaciones complementarias, que entregan posiciones corregidas mediante el sistema de ubicaciones simuladas de Android. Mapit GIS puede leer los datos de ubicación de esas aplicaciones en lugar de conectarse directamente al receptor.

Aplicaciones admitidas

AplicaciónFabricantePreferencia
Eos Tools ProEos Positioning Systems (serie Arrow)Eos Tools Pro
Zeno ConnectLeica Geosystems (serie Zeno)Zeno Connect
Trimble Mobile ManagerTrimbleTrimble Mobile Manager
Trimble SPaceTrimble (receptor DA2)Trimble SPace
SXblue ToolboxGeneq (serie SXblue)SXblue Toolbox

Cómo funciona

  1. Abre Ajustes > GNSS externo.
  2. Activa la opción de la aplicación complementaria correspondiente.
  3. La aplicación complementaria debe estar en marcha y entregando ubicaciones simuladas mediante LocationManager.GPS_PROVIDER.
  4. Mapit GIS lee el objeto Location estándar de Android y extrae datos ampliados del paquete extras: valores de DOP, información de satélites, precisión RMS, tipo de solución, antigüedad de la corrección diferencial y más.
tip

Las aplicaciones complementarias suelen gestionar internamente las correcciones RTK, las conexiones NTRIP y la calibración de la antena. La posición corregida se entrega después a Mapit GIS como una ubicación simulada.

Datos ampliados de las aplicaciones complementarias

Además de la posición y la precisión estándar, Mapit GIS lee del paquete de extras de la ubicación lo siguiente, cuando está disponible:

  • Valores de DOP: HDOP, VDOP, PDOP, GDOP, TDOP
  • Precisión RMS: HRMS, VRMS, RMS 3D
  • Información de satélites: satélites en uso, satélites a la vista, identificadores PRN, elevación, azimut, SNR, tipo de constelación
  • Datos diferenciales: antigüedad de la corrección, ID de la estación de corrección, tipo de solución
  • Datos de altura: altura sobre el nivel del mar, ondulación del geoide, altura de antena
  • Información del receptor: nombre del modelo, sistema de corrección SBAS

Proveedor de ubicaciones simuladas

Con conexión por Bluetooth o TCP/IP, Mapit GIS puede actuar opcionalmente como proveedor de ubicaciones simuladas. Eso significa que la posición del GNSS externo se inyecta en el sistema de ubicaciones de Android y queda disponible para todas las aplicaciones del dispositivo, no solo para Mapit GIS.

Para usar esta función debes activar las opciones de desarrollo en tu dispositivo Android y marcar Mapit GIS como la aplicación de ubicaciones simuladas en Opciones de desarrollo > Seleccionar aplicación de ubicación simulada.

precaución

Las ubicaciones simuladas requieren tener activadas las opciones de desarrollo. En los dispositivos gestionados (de empresa), este ajuste puede estar restringido por el administrador informático.


Prioridad de conexión

Si hay varias opciones de conexión activadas a la vez (algo no recomendable), la aplicación las resuelve en este orden de prioridad:

  1. GPS interno (predeterminado)
  2. GPS Bluetooth
  3. GPS por TCP
  4. GPS por serie USB
  5. GPS por BLE
  6. Eos Tools Pro
  7. Zeno Connect
  8. Trimble Mobile Manager
  9. SXblue Toolbox
  10. Trimble SPace (máxima prioridad)

Prevalece la última opción activada de esta lista.