UI-WebServer

UI-WebServer jest składnikiem programu UI-View32, który pozwala na dynamiczne tworzenie stron http. UI-WebServer w sposób dynamiczny tworzy zestawienie stacji aktualnie odbieranych przez UI-View, a także pozwala na umiejscowienie ich na mapach on-line. W oryginalnej wersji były to mapy vicinity.com, jednak obecnie serwis jest już niedostępny, potrzebne są modyfikacje kodu, aby korzystać z innych map on-line: Google, Virtual Earth, czy MapPoint. Strony tworzone przez UI-WebServer mogą być oglądane za pomocą przeglądarki internetowej na własnym komputerze, na jednym z komputerów w sieci LAN, czy nawet mogą być dostępne w sieci internetowej.

Przykładowe strony z UI-WebServer SR3WXA AB9FX

Uruchomienie

  1. Otwieramy UI-WebServer z głównego okna UI-View32 pod File.
  2. Jeśli nie pokaże się okno, to nastąpiło automatyczne zminimalizowanie i należy je wyciągnąć z dolnego paska.
  3. W celu sprawdzenia, czy standardowy port 80 dla HTTP nie jest zajęty przez inny program na naszym komputerze, należy w przeglądarce internetowej wpisać adres http://localhost
  4. Jeśli pokaże się strona utworzona od UI-WebServer, to możemy pozostać na standardowym porcie 80. Jeśli nie, to musimy skorzystać z innego portu (zgodnie z pomocami UI-View - F1, należy wybrać port powyżej 1024).
  5. W celu zmiany portu otwieramy w UI-WebServer - Setup. Dla standardowego portu 80, adres wpisywany w przeglądarce nie wymaga portu, ale jeśli zmieniliśmy go, to wówczas musimy wraz z adresem wpisywać port; np. korzystam z portu 8008, podgląd na tym samym komputerze mam przez wpisanie http://localhost:8008

Modyfikacje

Mapy

Najistotniejszą modyfikacją jest korekta dla map, ponieważ oryginalna wersja UI-WebServer korzysta z map obecnie niedostępnych. Gerhard F5VAG przygotował odpowiednie skrypty, które pozwalają na korzystanie z map Google, Virtual Earth, czy MapPoint.

  1. Otwieramy katalog ...\UI-View32\UI-WebServer\Special Pages. Strony, do których są wstawiane mapy, to info_call.html, info_mobilecall.html i infowx_call.html Otwieramy je z pomocą edytora html, czy też zwykłego edytora tekstu (np. notatnika).
  2. Odnajdujemy linie kodu, które zawierają stare mapy, będą to:
    <p align="center"><img width="600" height="350" border="1"
    alt="Large scale map of ##CALLSIGN##'s location" src="##MAP_LARGE_SCALE##"></p>
    
    <p align="center"><img width="600" height="350" border="1"
    alt="Medium scale map of ##CALLSIGN##'s location" src="##MAP_MEDIUM_SCALE##"></p>
    
    <p align="center"><img width="600" height="350" border="1"
    alt="Small scale map of ##CALLSIGN##'s location" src="##MAP_SMALL_SCALE##"></p>
  3. W ich miejsce wstawiamy nowy kod:

    - dla MapPoint (ExpediaMap) wstawiamy kody dla trzech różnych zbliżeń (kolejno zoom, czyli range=1000,50,2)

    <p align="center"><iframe src="http://f5vag.nerim.net/php/map.php?call=##CALLSIGN##
    &amp;posit=##LOCATION##&amp;sd=##SYMBOL_DESCRIPTION##&amp;range=1000"
    frameborder="0" width="600" height="400" scrolling="no" marginwidth="0"
    marginheight="0"></iframe></p>
    
    <p align="center"><iframe src="http://f5vag.nerim.net/php/map.php?call=##CALLSIGN##
    &amp;posit=##LOCATION##&amp;sd=##SYMBOL_DESCRIPTION##&amp;range=50"
    frameborder="0" width="600" height="400" scrolling="no" marginwidth="0"
    marginheight="0"></iframe></p>
    
    <p align="center"><iframe src="http://f5vag.nerim.net/php/map.php?call=##CALLSIGN##
    &amp;posit=##LOCATION##&amp;sd=##SYMBOL_DESCRIPTION##&amp;range=2"
    frameborder="0" width="600" height="400" scrolling="no" marginwidth="0"
    marginheight="0"></iframe></p>

    - dla map Google wstawiamy kod tylko dla jednej mapy, ponieważ pozwala ona na dowolne zbliżanie i przesuwanie.

    <p align="center"><iframe src="http://f5vag.nerim.net/maps/gmap.php?
    ca=##CALLSIGN##&amp;po=##LOCATION##&amp;sd=##SYMBOL_DESCRIPTION##" frameborder="0" 
    width="600" height="400" scrolling="no" marginwidth="0" marginheight="0">
    </iframe></p>

    Możemy uzupełnić kod o dodatkowe informacje po ##SYMBOL_DESCRIPTION## wpisując &op= oraz poniższe znaki, aby uzyskać:

    L - duża mapa (large) 800x600pikseli zamiast 600x400
    N - wyłączenie dodatkowej mapki z szerszym widokiem
    F - wymuszenie dodatkowej mapki z szerszym widokiem
    C - wymuszenie zamknięcia dodatkowej mapki z szerszym widokiem
    1 - początkowy widok z ulicami
    2 - początkowy widok satelitarny
    3 - początkowy widok hybrydowy

    Przykładowo, aby otwierała się duża mapa z widokiem hybrydowym, należy w kodzie zamiast ##SYMBOL_DESCRIPTION## wpisać ##SYMBOL_DESCRIPTION##&op=L3

    - dla map Virtual Earth podobnie, jak dla map Google, wstawiamy kod tylko dla jednej mapy, ponieważ ona również pozwala na dowolne zbliżanie i przesuwanie.

    <p align="center"><iframe src="http://f5vag.nerim.net/maps/vemap.php?
    ca=##CALLSIGN##&amp;po=##LOCATION##&amp;sd=##SYMBOL_DESCRIPTION##" frameborder="0" 
    width="600" height="400" scrolling="no" marginwidth="0" marginheight="0">
    </iframe></p>

    Do kodu możemy po ##SYMBOL_DESCRIPTION## dodać informacje podobnie, jak w przypadku kodu dla map Google, tu są dostępne:

    L - duża mapa (large) 800x600pikseli zamiast 600x400
    1 - początkowy widok z ulicami
    2 - początkowy widok satelitarny
    3 - początkowy widok hybrydowy
    4 - początkowy widok z lotu ptaka (w większości przypadków nie będzie miał zastosowania)

Wersja polskojęzyczna

Wersja polskojęzyczna stron tworzonych dynamicznie przez UI-Web Server wraz ze zmodyfikowanym kodem dla map Google i Virtual Earth, jest gotowa do wstawienia w miejsce oryginalnej.

Ściągamy katalogi/pliki .zip i rozpakowujemy.

Otwieramy katalog ...\UI-View32\UI-WebServer. Wstawiamy do niego rozpakowane katalogi/pliki. Oczywiście należy potwierdzić, że chcemy zastąpić nimi dotychczas istniejące (katalog z tłem jest nowy).

Podgląd aktualnej mapy

Automatyczne kopiowanie mapy

  1. Otwieramy z głównego okna UI-View - Files - Schedule Editor
  2. Wybieramy opcję CAPTURE_MAP
  3. Wpisujemy odstępy czasowe kopiowania mapy jako Ennn, czyli np. co 10 minut jako E10
  4. Określamy katalog, nazwę i rodzaj pliku graficznego, który będzie automatycznie tworzony. W moim przypadku wygląda on jako
    CAPTURE_MAP "C:\Program Files\Peak Systems\UI-View32\UI-WebServer\HTML\img\mapa.png"
    Więcej szczegółów znajduje się w pomocach, czyli, jak zwykle F1.

Dodawanie znacznika czasowego do skopiowanej mapy

  1. Otwieramy z głównego okna UI-View - Files - UI-Captioner Setup
  2. Dokonujemy konfiguracji: położenie znacznika, czas lokalny lub UTC (system), format czasu, czcionka, kolory czcionki i tła.
  3. Otwieramy z głównego okna UI-View - Files - Schedule Editor
  4. Wybieramy opcję RUN UICAPTIONER.EXE
  5. Wpisujemy odstępy czasowe dla umieszczania znacznika jako Ennn - powinien być taki sam, jak dla CAPTURE_MAP
  6. Określamy katalog, nazwę i rodzaj pliku graficznego, który będzie uzupełniany o znacznik czasowy. W moim przypdaku wygląda on jako
    RUN UICAPTIONER.EXE "C:\Program Files\Peak Systems\
    UI-View32\UI-WebServer\HTML\img\mapa.png"

Mapa na UI-WebServer

Na jednej z istniejących już stron, np. index.html, czy też na dodatkowo utworzonej stronie dodajemy grafikę  z linkiem do katalogu/pliku, gdzie znajduje się mapa.

Modyfikacja menu w UI-View32

Menu, które pokazuje się w UI-View32 po prawym kliknięciu na stację, może zostać wzbogacone o link do naszego UI-WebServera.

  1. Otwieramy plik konfiguracyjny ...\UI-View32\Uiview32.INI
  2. Pod linią [RIGHT_CLICK_URLS] dodajemy wpis UI-WebServer="http://localhost" , a w przypadku niestandardowego portu dodajemy również jego numer. Taki link będzie powodował otwarcie podglądu na nasz UI-WebServer w przeglądarce internetowej.
  3. Można nawet rozszerzyć link, aby bezpośrednio otwierać stronę ze szczegółami stacji na którą kliknęliśmy. Jest to o tyle cenne, że od razu mamy podgląd na szczegółową mapę z umiejscowieniem stacji. Wówczas wpis, który dodajemy przybierze postać UI-WebServer="http://localhost/find.cgi?call=$CALL" czy też w przypadku niestandardowego portu, jak np. (dla portu 8008) UI-WebServer="http://localhost:8008/find.cgi?call=$CALL"
  4. Link będzie dostępny po zrestartowaniu UI-View.

Uruchamianie UI-WebServera wraz z UI-View

UI-WebServer, podobnie, jak wiele innych programów, może być automatycznie uruchamiany czy zamykany wraz z UI-View, albo uruchamiany czy zamykany w określonym czasie.

Dostęp do UI-WebServera

Na własnym komputerze

Podgląd stron na komputerze, na którym uruchomiony jest UI-View z UI-WebServer odbywa się poprzez adres http://localhost a w przypadku niestandardowego portu poprzez adres wraz z portem, jak zostało opisane powyżej.

W wewnętrznej sieci LAN

Podgląd stron z innego komputera podłączonego do wewnętrznej sieci LAN odbywa się przez wpisanie adresu komputera (IP), na którym uruchomiony jest UI-WebServer, np. mój komputer w sieci domowej jest pod adresem 192.168.2.4, a więc wpisuję http://192.168.2.4 Jeśli UI-WebServer korzysta z innego portu niż 80, np. 8008, to wpisuję http://192.168.2.4:8008

W sieci internetowej

Jeśli komputer, na którym uruchomiony jest UI-WebServer połączony jest z siecią internetową, to strony przez niego tworzone mogą być dostępne z każdego innego komputera połączonego z Internetem. Podobnie, jak w sieci LAN wpisywaliśmy IP, pod którym komputer z UI-WebServer jest w sieci domowej, tak musimy wpisać IP, pod którym jest on w sieci internetowej.

Obecnie większość użytkowników Internetu nie posiada stałego IP. Dostawca internetowy oferuje najczęściej dynamiczne IP. Musimy wtedy za każdym razem wpisywać aktualne IP, albo skorzystać z serwisów, które oferują zastępczą domenę dla użytkowników z dynamicznym IP, jak np. DynDNS, No-IP, czy podobne. Zwykle proste przekierowanie na dynamiczne IP jest bezpłatne. Dla mojej stacji AB9FX korzystam z DynDNS, gdzie zastępcza domena http://ab9fx.selfip.net sprawia przekierowanie na IP, pod którym aktualnie znajduje się mój komputer w sieci internetowej (na komputerze musi być uruchomiony DynDNS Updater lub podobny program).

Poniższe narzędzie Geo IP Tool pokazuje Twoje aktualne IP w sieci:

W przypadku, gdybym korzystał ze standardowego portu 80 dla UI-WebServer, to byłby on dostępny przez wpisnie mojego IP jako http://68.74.66.19 ale korzystam z portu 8008, więc jest to http://68.74.66.19:8008 Po pewnym okresie mój IP w Internecie się zmieni, więc korzystam z serwisu DynDNS, który zapewnia mi stałą domenę. Do tego korzystam z portu innego niż 80, więc UI-WebServer dla mojej stacji AB9FX jest dostępny pod http://ab9fx.selfip.net:8008

Należy również skonfigurować FireWall na routerze, o ile z nim pracuję, aby port wykorzystywany przez UI-WebServer został otwarty. Aby sprawdzić, czy dany port jest otwarty dla dostępu z sieci internetowej służy m.in. Open Port Check Tool.