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.
- Android
- iOS
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
- Otwórz Ustawienia z menu głównego.
- Przejdź do Zewnętrzny GNSS.
- Włącz Sparowany GPS Bluetooth.
- Aplikacja poprosi o uprawnienia Bluetooth (
BLUETOOTH_CONNECTiBLUETOOTH_SCANw Androidzie 12 i nowszym). - Pojawi się okno wyboru urządzeń z listą wszystkich sparowanych urządzeń Bluetooth, opisanych nazwą i adresem MAC.
- Wskaż swój odbiornik. Adres i nazwa urządzenia zostaną zapisane na potrzeby kolejnych sesji.
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:
| Metoda | Opis |
|---|---|
| UUID urządzenia | Wykorzystuje UUID rozgłaszany przez sam odbiornik |
| Standardowy UUID SPP | Wykorzystuje standardowy UUID profilu portu szeregowego (00001101-0000-1000-8000-00805F9B34FB) |
| Niezabezpieczony RFCOMM | Wykorzystuje niezabezpieczony kanał RFCOMM - pomocne przy starszych odbiornikach odrzucających połączenia zabezpieczone |
| Kanał bezpośredni | Otwiera 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ń
- Otwórz Ustawienia > Zewnętrzny GNSS.
- Włącz GPS przez BLE.
- Aplikacja poprosi o uprawnienia Bluetooth (
BLUETOOTH_CONNECTiBLUETOOTH_SCANw Androidzie 12 i nowszym). - Pojawi się okno skanowania, które automatycznie wyszuka pobliskie urządzenia BLE rozgłaszające UUID usługi NUS.
- Skanowanie trwa do 15 sekund w trybie niskich opóźnień.
- Wskaż swój odbiornik na liście. Nazwa i adres urządzenia zostaną zapisane na potrzeby kolejnych sesji.
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:
- Połączenie GATT - nawiązanie łącza BLE z odbiornikiem.
- Wykrywanie usług - odnalezienie usługi Nordic UART Service (NUS) na urządzeniu.
- Włączenie powiadomień - subskrypcja charakterystyki TX usługi NUS (odbiornik do telefonu) przez zapis deskryptora CCCD.
- Negocjacja MTU - żądanie większego MTU (do 512 bajtów) dla wydajnego przesyłania danych.
- 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
- Otwórz Ustawienia > Zewnętrzny GNSS.
- Włącz GPS przez USB.
- 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 |
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
- Podłącz odbiornik GNSS do urządzenia z Androidem kablem lub przejściówką USB OTG.
- Aplikacja automatycznie wykrywa urządzenia szeregowe USB, korzystając ze standardowych sterowników USB CDC/ACM oraz FTDI/CH340/CP210x/PL2303.
- Przy pierwszym podłączeniu urządzenia Android poprosi o zgodę na dostęp do USB.
- 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
- Otwórz Ustawienia > Zewnętrzny GNSS.
- Włącz GPS przez TCP.
- Podaj nazwę hosta lub adres IP w polu Serwer (domyślnie:
localhost). - Podaj numer portu (domyślnie:
52003).
Konfiguracja gniazda
Połączenie TCP jest dostrojone do danych GNSS w czasie rzeczywistym:
| Ustawienie | Wartość | Cel |
|---|---|---|
| Keep-alive | Włączone | Zapobiega przerwaniu połączenia przez router lub zaporę przy długich sesjach |
| TCP no-delay | Włączone | Wyłącza algorytm Nagle'a, zapewniając dostarczanie NMEA z niskim opóźnieniem |
| Limit czasu odczytu | 90 sekund | Toleruje 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
| Aplikacja | Producent | Ustawienie |
|---|---|---|
| Eos Tools Pro | Eos Positioning Systems (seria Arrow) | Eos Tools Pro |
| Zeno Connect | Leica Geosystems (seria Zeno) | Zeno Connect |
| Trimble Mobile Manager | Trimble | Trimble Mobile Manager |
| Trimble SPace | Trimble (odbiornik DA2) | Trimble SPace |
| SXblue Toolbox | Geneq (seria SXblue) | SXblue Toolbox |
Jak to działa
- Otwórz Ustawienia > Zewnętrzny GNSS.
- Włącz opcję odpowiadającą Twojej aplikacji towarzyszącej.
- Aplikacja towarzysząca musi być uruchomiona i przekazywać lokalizacje pozorowane przez
LocationManager.GPS_PROVIDER. - Mapit GIS odczytuje standardowy obiekt
LocationAndroida i wyciąga dane rozszerzone z pakietuextras- w tym wartości DOP, informacje o satelitach, dokładność RMS, typ fixa, wiek poprawki różnicowej i inne.
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.
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:
- Wewnętrzny GPS (domyślnie)
- GPS przez Bluetooth
- GPS przez TCP
- GPS przez USB
- GPS przez BLE
- Eos Tools Pro
- Zeno Connect
- Trimble Mobile Manager
- SXblue Toolbox
- Trimble SPace (najwyższy priorytet)
Pierwszeństwo ma opcja znajdująca się najniżej na tej liście spośród włączonych.
Mapit GIS na iOS obsługuje trzy kanały połączenia z zewnętrznym GNSS:
- Bluetooth Classic - akcesoria z certyfikatem MFi (obecnie wyłącznie Eos Arrow)
- Bluetooth Low Energy (BLE) - odbiorniki udostępniające Nordic UART Service (NUS)
- TCP/IP - odbiorniki sieciowe lub przekaźniki NMEA
Kanał połączenia wybierasz w Ustawienia - Ustawienia pomiarów - Źródło GPS.
Bluetooth Classic (MFi)
Na iOS klasyczne odbiorniki GNSS Bluetooth łączą się przez framework ExternalAccessory firmy Apple. Apple wymaga, aby każdy producent miał certyfikat MFi i był indywidualnie dopuszczony w aplikacji, zanim będzie ona mogła komunikować się z jego akcesoriami.
Obecnie dopuszczone na iOS:
| Producent | Odbiorniki |
|---|---|
| Eos Positioning Systems | Seria Eos Arrow (Arrow Gold+, Arrow 100, Arrow Lite) |
| Juniper Systems | Geode GNS2, Geode GNS3 (GNS3S, GNS3M, GNS3H) oraz Spire |
Emlid Reach RX, Reach RX2 i Reach RS są już obsługiwane na Androidzie i są aktywnie testowane na iOS przez BLE - obsługa pojawi się w jednym z kolejnych wydań.
Mapit GIS aktywnie współpracuje z Apple nad dopuszczeniem kolejnych producentów. Dopóki producent nie zostanie zatwierdzony, jego klasyczne odbiorniki Bluetooth nie pojawią się na liście urządzeń na iOS - skorzystaj wtedy z BLE, jeśli odbiornik to obsługuje, albo z TCP/IP, jeśli pozycje można przekazać przez sieć.
Parowanie odbiornika Eos Arrow
- Włącz odbiornik i sparuj go w Ustawienia iOS - Bluetooth. Pojawi się jako parowanie „akcesorium" (MFi), a nie jako zwykłe urządzenie Bluetooth.
- W Mapit GIS otwórz Ustawienia - Ustawienia pomiarów.
- Ustaw źródło GPS na Bluetooth Classic.
- Dotknij Wybierz urządzenie, aby wskazać swój odbiornik Arrow na liście podłączonych akcesoriów.
- Dotknij Połącz. Aplikacja otworzy sesję z odbiornikiem przez
EASessioni zacznie odczytywać komunikaty NMEA ze strumienia wejściowego akcesorium.
Dane NMEA płyną do Mapit GIS strumieniem wejściowym akcesorium, a gdy klient NTRIP jest aktywny, poprawki RTCM zapisywane są z powrotem strumieniem wyjściowym.
Gdy odbiornik MFi nie jest dopuszczony
Jeśli Twój klasyczny odbiornik Bluetooth nie pojawia się na liście urządzeń, to niemal na pewno dlatego, że jego protokół MFi nie został jeszcze dodany do Mapit GIS. Skontaktuj się z nami przez stronę zgłoszeń, podając model swojego odbiornika - kolejność dodawania obsługi MFi ustalamy na podstawie zapotrzebowania klientów.
Połączenie Bluetooth Low Energy (BLE)
Mapit GIS na iOS łączy się z zewnętrznymi odbiornikami GNSS również przez Bluetooth Low Energy z wykorzystaniem profilu Nordic UART Service (NUS). BLE nie podlega ograniczeniom MFi i działa z każdym odbiornikiem rozgłaszającym usługę NUS - przetestowano z urządzeniami ArduSimple i u-blox (szczegóły w Kliencie NTRIP - przetestowane odbiorniki).
Wyszukiwanie urządzeń
- Otwórz Ustawienia - Ustawienia pomiarów.
- Ustaw źródło GPS na Bluetooth BLE.
- Przy pierwszym uruchomieniu iOS poprosi o uprawnienie Bluetooth.
- Dotknij Wybierz urządzenie, aby otworzyć ekran skanowania. Automatycznie wyszuka on pobliskie urządzenia BLE rozgłaszające Nordic UART Service (NUS).
- Wykryte urządzenia wyświetlane są z nazwą i wskaźnikiem siły sygnału (czterostopniowa wizualizacja na podstawie RSSI).
- Wskaż swój odbiornik. Identyfikator i nazwa urządzenia zostaną zapisane na potrzeby kolejnych sesji.
BLE nie wymaga wcześniejszego parowania urządzenia w ustawieniach iOS. Aplikacja wykrywa odbiorniki GNSS bezpośrednio na własnym ekranie skanowania. Jeśli urządzenie pojawia się jako „Unknown GNSS Device", sprawdź, czy nazwa Bluetooth Twojego odbiornika jest poprawnie skonfigurowana.
Siła sygnału
Lista urządzeń pokazuje wskaźnik siły sygnału dla każdego wykrytego urządzenia:
| Zakres RSSI | Siła |
|---|---|
| −50 dBm do 0 dBm | Doskonała |
| −65 dBm do −50 dBm | Dobra |
| −80 dBm do −65 dBm | Przeciętna |
| Poniżej −80 dBm | Słaba |
Przebieg łączenia
Przy rozpoczęciu sesji GNSS przez BLE aplikacja łączy się z wybranym urządzeniem przy użyciu CoreBluetooth na iOS. Kolejność łączenia:
- Pobranie urządzenia peryferyjnego — wyszukanie zapisanego urządzenia po identyfikatorze. Jeśli nie ma go w pamięci podręcznej Bluetooth, aplikacja przechodzi do skanowania po UUID usługi NUS.
- Połączenie GATT — nawiązanie łącza BLE z odbiornikiem.
- Wykrywanie usług — odnalezienie usługi Nordic UART Service na urządzeniu.
- Wykrywanie charakterystyk — odnalezienie zarówno charakterystyki TX usługi NUS (odbiornik → telefon), jak i charakterystyki RX (telefon → odbiornik).
- Włączenie powiadomień — subskrypcja charakterystyki TX w celu odbierania danych NMEA.
- Negocjacja MTU — odczytanie maksymalnej długości zapisu dla wydajnego przesyłania RTCM.
- Gotowość połączenia — aplikacja zgłasza stan „połączono" dopiero po wykryciu obu charakterystyk TX i RX oraz włączeniu powiadomień.
Limit czasu połączenia
Metoda connect() w CoreBluetooth na iOS domyślnie czeka bezterminowo. Aby aplikacja nie sprawiała wrażenia zawieszonej, Mapit GIS wymusza 10-sekundowy limit czasu połączenia. Jeśli połączenie GATT i wykrywanie charakterystyk nie zakończą się w tym czasie, próba połączenia jest anulowana i rozpoczyna się cykl ponownego łączenia.
Analiza NMEA
Odbiorniki GNSS BLE często wysyłają na tej samej charakterystyce NUS mieszankę tekstu NMEA i danych binarnych (np. komunikatów firmowych UBX). Mapit GIS rozpoznaje granice zdań na podstawie sumy kontrolnej, a nie znaków nowego wiersza:
- Wyszukuje znak
$albo!po którym następują co najmniej dwie wielkie litery (identyfikator nadawcy), aby znaleźć początek zdania. - Odnajduje znacznik sumy kontrolnej
*HH(gwiazdkę i dwie cyfry szesnastkowe), aby znaleźć koniec zdania. - Automatycznie odrzuca dane binarne między zdaniami.
Podejście to jest odporne na dane binarne, które mogłyby uszkodzić zakończenia wierszy albo zawierać fałszywe znaki $.
Bufor wiersza ograniczony jest do 4 KB, aby zapobiec nieograniczonemu wzrostowi zużycia pamięci, gdy odbiornik wysyła duże ilości danych binarnych obok NMEA.
Poprawki RTCM przez BLE
Gdy sesja klienta NTRIP jest aktywna, dane korekcyjne RTCM wysyłane są do odbiornika przez zapis do charakterystyki RX usługi NUS. Aplikacja automatycznie:
- dzieli dane RTCM na segmenty mieszczące się w wynegocjowanym MTU (pomniejszonym o 3 bajty narzutu ATT, minimum 20 bajtów);
- kolejkuje zapisy szeregowo — BLE dopuszcza tylko jeden zapis naraz. Każdy segment wysyłany jest dopiero po zakończeniu poprzedniego;
- korzysta z zapisu bez potwierdzenia, co zmniejsza opóźnienia - a to istotne przy poprawkach RTK w czasie rzeczywistym.
Automatyczne ponowne łączenie
Jeśli połączenie BLE zerwie się nieoczekiwanie (np. odbiornik chwilowo wyjdzie poza zasięg), aplikacja automatycznie próbuje połączyć się ponownie z narastającym opóźnieniem:
| Próba | Opóźnienie |
|---|---|
| 1 | 2 sekundy |
| 2 | 4 sekundy |
| 3 | 8 sekund |
| 4 | 16 sekund |
| 5 i kolejne | 30 sekund (maksimum) |
Cykl ponownego łączenia trwa tak długo, jak długo GPS przez BLE pozostaje włączony. Jeśli podczas ponownego łączenia urządzenia nie ma w pamięci podręcznej Bluetooth, aplikacja przechodzi do skanowania po UUID usługi NUS, aby wykryć je ponownie.
Przy rozłączeniu celowym, wykonanym przez użytkownika, ponowne łączenie nie jest podejmowane.
Obsługa stanu Bluetooth
Aplikacja reaguje na zmiany stanu Bluetooth w iOS:
| Stan | Zachowanie |
|---|---|
| Włączony | Automatycznie łączy się z zapisanym urządzeniem |
| Wyłączony | Uznaje połączenie za utracone i zgłasza rozłączenie |
| Brak uprawnień | Zapisuje błąd — użytkownik musi przyznać uprawnienie Bluetooth w ustawieniach iOS |
Połączenie TCP/IP
TCP/IP to alternatywny sposób podłączenia zewnętrznego odbiornika GNSS na iOS. Działa z odbiornikami sieciowymi, casterami NTRIP oraz danymi GNSS przekazywanymi z komputera lub urządzenia towarzyszącego przez Wi-Fi.
Konfiguracja
- Otwórz Ustawienia - Ustawienia pomiarów.
- Ustaw źródło GPS na TCP/IP NMEA.
- Podaj host (nazwę hosta lub adres IP).
- Podaj numer portu.
- Opcjonalnie włącz automatyczne ponowne łączenie, aby samoczynnie odzyskiwać zerwane połączenia.
Aplikacja połączy się ze wskazanym punktem końcowym TCP i zacznie odczytywać komunikaty NMEA ze strumienia danych.
Jak to działa
Wiele odbiorników GNSS udostępnia własny hotspot Wi-Fi albo potrafi przesyłać dane NMEA przez sieć lokalną. Typowe konfiguracje:
| Konfiguracja | Opis |
|---|---|
| Hotspot Wi-Fi odbiornika | Połącz iPhone'a lub iPada z siecią Wi-Fi odbiornika i podaj jego adres IP |
| Przekaźnik NTRIP | Wykorzystaj komputer lub urządzenie towarzyszące do przekazywania poprawek NTRIP i danych NMEA przez TCP |
| Sieć lokalna | Odbiornik i urządzenie z iOS w tej samej sieci Wi-Fi |
Jeśli Twój odbiornik ma własną aplikację towarzyszącą, która potrafi udostępniać NMEA na porcie TCP, możesz używać jej równolegle z Mapit GIS. Skonfiguruj aplikację towarzyszącą tak, aby nasłuchiwała na porcie TCP, a następnie wskaż w Mapit GIS adres localhost (lub adres IP urządzenia) i ten port.