Protokół MeshCom

Budowa protokołu MeshCom

MeshCom 4.0 wykorzystuje do przesyłania danych użytkowych protokół zmodyfikowany na bazie protokołu APRS-AX.25, zdefiniowanego dla APRS (aprs101.pdf, APRS PROTOCOL REFERENCE, wersja 1.0, 2000, str. 12).

1. Wykorzystywane pola

  • Identyfikator – identyfikator typu danych APRS
  • ID wiadomości – unikalna wartość 32-bitowa LSB->MSB
  • MAX-HOP – maks. 7 (maska 0x07), domyślnie używane jest 5, co pozwala na 4 dalsze przekazania.
    • 0x80 – znacznik informujący, że wiadomość została już przesłana przez serwer MQTT.
    • 0x40 – znacznik informujący, że wiadomość ma zostać uzupełniona przez MeshClient o znak wywoławczy stacji przekazującej. Używany do celów pomiarowych i sterujących.
  • Adres źródłowy – pole zawiera znak wywoławczy i SSID stacji nadającej.
  • Adres docelowy – pole może zawierać docelowy znak wywoławczy APRS lub „*” dla transmisji do WSZYSTKICH.
  • Digipeater – w tym polu może znajdować się od 0 do 8 znaków wywoławczych digipeaterów. Uwaga: adresy tych digipeaterów mogą zostać nadpisane ogólną ścieżką digipeaterów APRS (określoną przez SSID adresu docelowego).
  • Informacja – pole zawiera dane transportowe. Pierwszy znak tego pola to identyfikator typu danych APRS, który wskazuje, jakiego rodzaju dane następują dalej.
  • Frame Check Sequence (FCS) – sekwencja 16 bitów służąca do sprawdzania integralności odebranej ramki.

 

2. Wiadomości

Wiadomości tekstowe:

:|!MMMMMM|!*HH|OE0XXX-99|>*|*:|Wiadomość tekstowa|!00|!HW|!MOD|FCS#


Wiadomości tekstowe ze ścieżką z sieci Mesh:

:|!MMMMMM|!*HH|OE0XXX-99*,OE3XXX-12,OE3YY-12|>*|:|Wiadomość tekstowa|!00|!HW|!MOD|FCS#


Wiadomości z pozycją:

!|!MMMMMMMM|!HH|OE0XXX-99|>*|!|4800.00|N|/|01600.00|E|#| BBB /A=HHHHHH|!00|!HW|!MOD|FCS#


Suma kontrolna:

FCS jest tworzona jako 16-bitowa suma bez znaku bajtów protokołu od 0 do bajtu MOD włącznie i dołączana w formacie little endian za bajtem MOD.

 

 

3. Elementy wiadomości

Skrót Nazwa pola Typ zmiennej
: ! Identyfikator wiadomości Wersja 4.0
MMMMMMMM ID wiadomości 32-bit LSB->MSB
HH MAX-HOP 8-bitowa maska bitowa 0x07
Wiadomość przesłana przez serwer MQTT Maska bitowa 0x80
Wstawienie ścieżki w sieci Mesh (z przecinkiem jako separatorem) Maska bitowa 0x40
4800.00 Szerokość geograficzna stopnie/dziesiętne x 100
01600.00 Długość geograficzna stopnie/dziesiętne x 100
N N (północ) / S (południe) char
/ Grupa symboli APRS (/ lub \) char
E E (wschód) / W (zachód) char
# Symbol APRS char
BBB Stan akumulatora w % int 0 – 100
/A=HHHHHH Wysokość GPS n.p.m. (stopy) int 0 – 40000
Zakończenie PayLoad zamyka obszar APRS PayLoad 0x00
HW ID sprzętu (patrz osobna tabela) 8-bit (patrz tabela)
MOD ID modulacji LoRa (MediumSlow…3) 8-bit (patrz tabela)
FCS# Suma kontrolna wraz z identyfikatorem i 0x00 zakończenia wiadomości 32-bit LSB->MSB