Proxy KISS TCP w PYTHONIE

By | 11 marca 2019

Uruchamiając stację domową na DIREWOLF i APRX, zauważymy pewną niedogodność podczas podłączenia do tego układu aplikacji APRSIS32. W aplikacji APRSIS32 nie widać ramek wysłanych lub powtórzonych przez APRX-a. Dzięki skryptowi  napisanemu przez Tomka SQ5T można ten problem ominąć.

Uruchomienie stacji domowej opisałem w jednym z poprzednich artykułów. Zasadniczo wszystko tam działa poprawnie, jednakże w aplikacji APRSIS32 nie widać ramek które wysyła APRX.  By zrozumieć w czym problem pomoże poniższy diagram:

rys1

Widać na tym rysunku że dane przepływają od i do direwolfa w kierunku APRX-a i APRSIS32 za pomocą protokołu TCP.  Zatem by rozwiązać nasz problem potrzebne jest coś w rodzaju proxy które prześle dane pomiędzy wszystkimi podłączonymi do niego aplikacjami.

rys2

Skrypt PROXY nawiązuje połączenie z direwolfem i na innym zadanym porcie oczekuje na połączenia od APRX-a oraz APRSIS32. Podczas pracy każda z ramek pojawiająca się na którymkolwiek interfejsie jest rozsyłana do wszystkich podłączonych klientów.

Konfiguracja skryptu sprowadza się do edycji pliku PROXY.py, gdzie konfigurujemy połączenie wychodzące do direwolfa. Następnie w liniach 14 i 15 ustawiamy adres i port do którego będą się łączyły APRX i APRSIS32.

listen_address = "" # listen IP, "" == listen all
listen_port = 8002 # listen port

destination_address = "127.0.0.1" # connect to IP
destination_port = 8001 # connect to port

Cały skrypt jest dostępny do pobrania z serwisu GITHUB na profilu Tomka.
Zachęcam do korzystania.

R.