Przejdź do głównej zawartości

Podłączanie odbiornika

Mapit GIS obsługuje zewnętrzne odbiorniki GNSS zapewniające dokładność pozycjonowania na poziomie centymetrów. Na Androidzie odbiornik możesz podłączyć przez Bluetooth (najczęściej), Bluetooth Low Energy (BLE), port szeregowy USB, TCP/IP (odbiorniki sieciowe lub strumienie NTRIP) albo przez zewnętrzną aplikację towarzyszącą, która przekazuje dane lokalizacji przez systemowy mechanizm lokalizacji pozorowanej. Na iOS możesz połączyć się przez Bluetooth Low Energy (BLE) lub TCP/IP.

Aktywna może być tylko jedna metoda połączenia naraz - włączenie jednej automatycznie wyłącza pozostałe.

Połączenie Bluetooth

Większość zewnętrznych odbiorników GNSS komunikuje się przez Bluetooth z wykorzystaniem profilu portu szeregowego (SPP). Jest to szeregowy strumień danych przenoszący komunikaty NMEA z odbiornika do aplikacji.

Parowanie urządzenia

  1. Otwórz Ustawienia z menu głównego.
  2. Przejdź do Zewnętrzny GNSS.
  3. Włącz Sparowany GPS Bluetooth.
  4. Aplikacja poprosi o uprawnienia Bluetooth (BLUETOOTH_CONNECT i BLUETOOTH_SCAN w Androidzie 12 i nowszym).
  5. Pojawi się okno wyboru urządzeń z listą wszystkich sparowanych urządzeń Bluetooth, opisanych nazwą i adresem MAC.
  6. Wskaż swój odbiornik. Adres i nazwa urządzenia zostaną zapisane na potrzeby kolejnych sesji.
wskazówka

Najpierw sparuj odbiornik z urządzeniem z Androidem w Ustawienia Androida > Bluetooth, a dopiero potem otwórz Mapit GIS. Aplikacja pokazuje wyłącznie urządzenia już sparowane - nie prowadzi wyszukiwania Bluetooth.

Przebieg łączenia

Przy rozpoczęciu sesji GNSS przez Bluetooth aplikacja próbuje połączyć się kolejno czterema metodami, z automatycznymi ponowieniami:

MetodaOpis
UUID urządzeniaWykorzystuje UUID rozgłaszany przez sam odbiornik
Standardowy UUID SPPWykorzystuje standardowy UUID profilu portu szeregowego (00001101-0000-1000-8000-00805F9B34FB)
Niezabezpieczony RFCOMMWykorzystuje niezabezpieczony kanał RFCOMM - pomocne przy starszych odbiornikach odrzucających połączenia zabezpieczone
Kanał bezpośredniOtwiera bezpośrednio kanał RFCOMM 1 przez refleksję - ostateczność dla odbiorników, które nie rozgłaszają żadnego UUID

Każda metoda ponawiana jest maksymalnie dwukrotnie, zanim aplikacja przejdzie do następnej. Po nawiązaniu połączenia aplikacja zaczyna odczytywać komunikaty NMEA ze strumienia danych odbiornika.

Poprawki RTCM przez Bluetooth

Gdy sesja klienta NTRIP jest aktywna, dane korekcyjne RTCM wysyłane są z powrotem do odbiornika tym samym połączeniem Bluetooth SPP. Dwukierunkowe łącze szeregowe pozwala poprawkom docierać do odbiornika w czasie rzeczywistym na potrzeby pozycjonowania RTK.

Limit czasu oczekiwania na dane

Jeśli przez 5 sekund od nawiązania połączenia nie napłyną żadne dane, aplikacja uznaje połączenie za nieaktualne i rozłącza się. Zapobiega to sytuacji, w której aplikacja wygląda na połączoną, choć odbiornik faktycznie przeszedł w stan uśpienia albo wyszedł poza zasięg.

Usługa pierwszoplanowa

W trakcie połączenia aplikacja uruchamia usługę pierwszoplanową zewnętrznego GNSS, aby Android nie przerwał połączenia podczas pracy w tle. Stałe powiadomienie potwierdza, że połączenie GNSS jest aktywne. Usługa ta utrzymuje też blokadę wybudzenia procesora, aby procesor pracował przy wyłączonym ekranie.


Połączenie Bluetooth Low Energy (BLE)

Część nowoczesnych odbiorników GNSS - takich jak seria ArduSimple - komunikuje się przez Bluetooth Low Energy z wykorzystaniem profilu Nordic UART Service (NUS) zamiast klasycznego Bluetooth SPP. BLE zużywa mniej energii i jest zalecaną metodą połączenia dla odbiorników, które je obsługują.

Wyszukiwanie urządzeń

  1. Otwórz Ustawienia > Zewnętrzny GNSS.
  2. Włącz GPS przez BLE.
  3. Aplikacja poprosi o uprawnienia Bluetooth (BLUETOOTH_CONNECT i BLUETOOTH_SCAN w Androidzie 12 i nowszym).
  4. Pojawi się okno skanowania, które automatycznie wyszuka pobliskie urządzenia BLE rozgłaszające UUID usługi NUS.
  5. Skanowanie trwa do 15 sekund w trybie niskich opóźnień.
  6. Wskaż swój odbiornik na liście. Nazwa i adres urządzenia zostaną zapisane na potrzeby kolejnych sesji.
wskazówka

W odróżnieniu od klasycznego Bluetootha, BLE nie wymaga wcześniejszego parowania urządzenia w ustawieniach Androida. Aplikacja wykrywa odbiorniki GNSS BLE bezpośrednio w oknie skanowania.

Przebieg łączenia

Przy rozpoczęciu sesji GNSS przez BLE aplikacja łączy się z wybranym urządzeniem, korzystając z klienta GATT (Generic Attribute Profile) Androida. Kolejność łączenia:

  1. Połączenie GATT - nawiązanie łącza BLE z odbiornikiem.
  2. Wykrywanie usług - odnalezienie usługi Nordic UART Service (NUS) na urządzeniu.
  3. Włączenie powiadomień - subskrypcja charakterystyki TX usługi NUS (odbiornik do telefonu) przez zapis deskryptora CCCD.
  4. Negocjacja MTU - żądanie większego MTU (do 512 bajtów) dla wydajnego przesyłania danych.
  5. Strumień NMEA - aplikacja zaczyna odczytywać komunikaty NMEA z powiadomień BLE.

Poprawki RTCM przez BLE

Gdy sesja klienta NTRIP jest aktywna, dane korekcyjne RTCM wysyłane są z powrotem do odbiornika przez BLE, przez zapis do charakterystyki RX usługi NUS. Aplikacja automatycznie dzieli dane RTCM na segmenty o rozmiarze MTU, co zapewnia niezawodne dostarczenie.

Limit czasu oczekiwania na dane

Jeśli przez 5 sekund nie napłyną żadne dane NMEA, aplikacja uznaje połączenie za utracone i rozłącza się. Dzięki temu wyświetlane informacje GPS są szybko czyszczone, gdy odbiornik zostanie wyłączony lub wyjdzie poza zasięg, zamiast czekać na limit nadzoru BLE.

Automatyczne ponowne łączenie

Jeśli połączenie BLE zerwie się nieoczekiwanie (np. odbiornik chwilowo wyjdzie poza zasięg), aplikacja odczekuje 2 sekundy, a następnie automatycznie próbuje połączyć się ponownie. Przy rozłączeniu celowym - przez użytkownika lub na skutek limitu czasu oczekiwania na dane - ponowne łączenie nie jest podejmowane.

Usługa pierwszoplanowa

W trakcie połączenia przez BLE aplikacja uruchamia usługę pierwszoplanową zewnętrznego GNSS z blokadą wybudzenia procesora, identycznie jak przy klasycznym Bluetoothie. Blokada Wi-Fi i wywołanie zwrotne sieci nie są wykorzystywane przy połączeniach BLE, ponieważ nie bierze w nich udziału sieć.


Połączenie przez port szeregowy USB

W przypadku odbiorników GNSS podłączanych kablem USB OTG aplikacja może odczytywać dane NMEA bezpośrednio przez połączenie szeregowe USB. Przydaje się to przy odbiornikach bez Bluetootha - albo gdy przy długich sesjach pomiarowych potrzebujesz bardziej niezawodnego połączenia przewodowego.

Konfiguracja

  1. Otwórz Ustawienia > Zewnętrzny GNSS.
  2. Włącz GPS przez USB.
  3. Wybierz odpowiednią prędkość transmisji dla swojego odbiornika (domyślnie: 115200).

Obsługiwane są następujące prędkości transmisji:

Prędkość transmisji
4800
9600
19200
38400
57600
115200
230400
460800
921600
wskazówka

Większość nowoczesnych odbiorników GNSS korzysta domyślnie z prędkości 115200. Jeśli nie masz pewności, sprawdź dokumentację swojego odbiornika.

Przebieg łączenia

  1. Podłącz odbiornik GNSS do urządzenia z Androidem kablem lub przejściówką USB OTG.
  2. Aplikacja automatycznie wykrywa urządzenia szeregowe USB, korzystając ze standardowych sterowników USB CDC/ACM oraz FTDI/CH340/CP210x/PL2303.
  3. Przy pierwszym podłączeniu urządzenia Android poprosi o zgodę na dostęp do USB.
  4. Po jej udzieleniu aplikacja otwiera port szeregowy ze skonfigurowaną prędkością transmisji (8 bitów danych, 1 bit stopu, bez parzystości) i zaczyna odczytywać komunikaty NMEA.

Poprawki RTCM przez USB

Gdy sesja klienta NTRIP jest aktywna, dane korekcyjne RTCM wysyłane są do odbiornika tym samym połączeniem szeregowym USB. Dwukierunkowe łącze szeregowe sprawia, że USB doskonale nadaje się do pracy z RTK, gdzie poprawki muszą docierać do odbiornika z minimalnym opóźnieniem.

Wykrywanie odłączenia kabla

Aplikacja nasłuchuje systemowego komunikatu USB_DEVICE_DETACHED Androida. Gdy kabel USB zostanie fizycznie odłączony, aplikacja natychmiast to wykrywa i porządkuje połączenie - bez opóźnienia wynikającego z limitu czasu.

Odzyskiwanie po błędach

Jeśli wystąpią błędy odczytu USB (np. wskutek zakłóceń elektrycznych albo poluzowanego połączenia), aplikacja ponawia próbę z 1-sekundowym opóźnieniem. Po 5 kolejnych błędach odczytu aplikacja uznaje połączenie za utracone i rozłącza się.

Usługa pierwszoplanowa

W trakcie połączenia przez USB aplikacja uruchamia usługę pierwszoplanową zewnętrznego GNSS z blokadą wybudzenia procesora, aby połączenie nie zostało przerwane przy wyłączonym ekranie.


Połączenie TCP/IP

W przypadku odbiorników GNSS podłączonych do sieci, casterów NTRIP albo danych GNSS przekazywanych z komputera możesz połączyć się przez TCP/IP.

Konfiguracja

  1. Otwórz Ustawienia > Zewnętrzny GNSS.
  2. Włącz GPS przez TCP.
  3. Podaj nazwę hosta lub adres IP w polu Serwer (domyślnie: localhost).
  4. Podaj numer portu (domyślnie: 52003).

Konfiguracja gniazda

Połączenie TCP jest dostrojone do danych GNSS w czasie rzeczywistym:

UstawienieWartośćCel
Keep-aliveWłączoneZapobiega przerwaniu połączenia przez router lub zaporę przy długich sesjach
TCP no-delayWłączoneWyłącza algorytm Nagle'a, zapewniając dostarczanie NMEA z niskim opóźnieniem
Limit czasu odczytu90 sekundToleruje ciszę w strumieniach NTRIP, wykrywając jednocześnie martwe połączenia

Poprawki RTCM przez TCP

Gdy sesja klienta NTRIP jest aktywna, dane korekcyjne RTCM wysyłane są do odbiornika tym samym gniazdem TCP. Przydaje się to przy odbiornikach przyjmujących poprawki przez interfejs sieciowy albo przy przekazywaniu poprawek przez komputer lub urządzenie towarzyszące.

Automatyczne ponowne łączenie

Jeśli połączenie TCP zerwie się nieoczekiwanie, aplikacja automatycznie próbuje połączyć się ponownie:

  • do 3 ponowień z narastającym opóźnieniem (2 s, 4 s, 8 s);
  • komunikat pokazuje „Utracono połączenie, ponowne łączenie (próba X)...";
  • jeśli wszystkie próby zawiodą, aplikacja wraca do wewnętrznego GPS.

Usługa pierwszoplanowa

Usługa pierwszoplanowa TCP dodatkowo pobiera blokadę Wi-Fi (w trybie niskich opóźnień) i rejestruje wywołanie zwrotne sieci, aby Android nie wyłączył radia Wi-Fi w trakcie sesji.


Zewnętrzne aplikacje towarzyszące

Niektórzy producenci GNSS udostępniają własne aplikacje towarzyszące, które przekazują skorygowane pozycje przez systemowy mechanizm lokalizacji pozorowanej Androida. Mapit GIS może odczytywać dane lokalizacji z tych aplikacji zamiast łączyć się bezpośrednio z odbiornikiem.

Obsługiwane aplikacje

AplikacjaProducentUstawienie
Eos Tools ProEos Positioning Systems (seria Arrow)Eos Tools Pro
Zeno ConnectLeica Geosystems (seria Zeno)Zeno Connect
Trimble Mobile ManagerTrimbleTrimble Mobile Manager
Trimble SPaceTrimble (odbiornik DA2)Trimble SPace
SXblue ToolboxGeneq (seria SXblue)SXblue Toolbox

Jak to działa

  1. Otwórz Ustawienia > Zewnętrzny GNSS.
  2. Włącz opcję odpowiadającą Twojej aplikacji towarzyszącej.
  3. Aplikacja towarzysząca musi być uruchomiona i przekazywać lokalizacje pozorowane przez LocationManager.GPS_PROVIDER.
  4. Mapit GIS odczytuje standardowy obiekt Location Androida i wyciąga dane rozszerzone z pakietu extras - w tym wartości DOP, informacje o satelitach, dokładność RMS, typ fixa, wiek poprawki różnicowej i inne.
wskazówka

Aplikacje towarzyszące zwykle same obsługują poprawki RTK, połączenia NTRIP i kalibrację anteny. Skorygowana pozycja przekazywana jest następnie do Mapit GIS jako lokalizacja pozorowana.

Dane rozszerzone z aplikacji towarzyszących

Oprócz standardowej pozycji i dokładności Mapit GIS odczytuje z pakietu danych dodatkowych lokalizacji następujące informacje, jeśli są dostępne:

  • Wartości DOP: HDOP, VDOP, PDOP, GDOP, TDOP
  • Dokładność RMS: HRMS, VRMS, RMS 3D
  • Informacje o satelitach: satelity używane, satelity widoczne, numery PRN, wysokość, azymut, SNR, typ konstelacji
  • Dane różnicowe: wiek poprawki, identyfikator stacji korekcyjnej, typ fixa
  • Dane wysokościowe: wysokość nad poziomem morza, odstęp geoidy, wysokość anteny
  • Informacje o odbiorniku: nazwa modelu, system korekcyjny SBAS

Dostawca lokalizacji pozorowanej

Przy połączeniu przez Bluetooth lub TCP/IP Mapit GIS może opcjonalnie sam działać jako dostawca lokalizacji pozorowanej. Oznacza to, że pozycja z zewnętrznego GNSS wstrzykiwana jest do systemu lokalizacji Androida i staje się dostępna dla wszystkich aplikacji na urządzeniu - nie tylko dla Mapit GIS.

Aby skorzystać z tej funkcji, musisz włączyć opcje programisty na urządzeniu z Androidem i ustawić Mapit GIS jako aplikację lokalizacji pozorowanej w Opcje programisty > Wybierz aplikację lokalizacji pozorowanej.

uwaga

Lokalizacja pozorowana wymaga włączonych opcji programisty. Na urządzeniach zarządzanych (firmowych) ustawienie to może być zablokowane przez administratora IT.


Priorytet połączeń

Jeśli jednocześnie włączonych jest kilka opcji połączenia (co nie jest zalecane), aplikacja rozstrzyga je według następującego priorytetu:

  1. Wewnętrzny GPS (domyślnie)
  2. GPS przez Bluetooth
  3. GPS przez TCP
  4. GPS przez USB
  5. GPS przez BLE
  6. Eos Tools Pro
  7. Zeno Connect
  8. Trimble Mobile Manager
  9. SXblue Toolbox
  10. Trimble SPace (najwyższy priorytet)

Pierwszeństwo ma opcja znajdująca się najniżej na tej liście spośród włączonych.