Informacja o statusie połączenia modemu komórkowego 3G/4G/5G
Ostatnia zmiana: 2024-03-24 11:54

Celem projektu jest graficzna wizualizacja statusu modemu komórkowego 3G/4G/5G przez stronę www. Poniżej zaprezentowano przykładowy zrzut ekranu:



Sam projekt w całości napisany został jako skrypty shella i wykorzystuje komponenty standardowo dostępne w normalnej instalacji OpenWrt. Nie jest zależny od konkretnej platformy sprzętowej więc powinien działać na każdym urządzeniu wspieranym przez OpenWrt, zależy za to od kilku zewnętrznych pakietów.
Działa z większością modemów 3G/4G/5G na USB, modułami na złączu minipcie oraz telefonami/smartfonami podłączonymi przez kabel USB, wykorzystując interfejs szeregowy. Działa także z modemami Huawei typu HiLink (działającymi jako karta sieciowa).

Domyślnym językiem projektu jest język Angielski; jeżeli przeglądarka wspiera język Polski to nastąpi automatycznie przetłumaczenie interfejsu.

Ten opis dotyczy nowej wersji projektu. Stary opis znajduje się pod tym adresem: 3ginfo-old.

Wymagania

Program wymaga do działania urządzenia potrafiącego zwracać informacje przy pomocy komend AT. Zwykle musi to być inny interfejs niż ten na którym odbywa się połączenie. Nie wszystkie urządzenia mogą zwracać użyteczne informacje, w związku z tym część parametrów może nie być dostępna.

Instalacja

Należy zainstalować pakiet 3ginfo:


    # opkg update
    # opkg install 3ginfo
    # /etc/init.d/3ginfo enable
    # /etc/init.d/3ginfo start

Jeżeli potrzebna jest tyko wersja tekstowa, bez interfejsu www to wystarczy zainstalować pakiet 3ginfo-text.


    # opkg update
    # opkg install 3ginfo-text

Pliki można zainstalować także "ręcznie", dostępne są w moim repozytorium pakietów. Aktualne źródła projektu dostępne są na moim githubie.

Do poprawnego działania niezbędne są też odpowiednie sterowniki do modemu. W ogólnym przypadku wystarczy


    # opkg install kmod-usb-serial kmod-usb-serial-option

ale zależy to od konkretnego modelu modemu i być może trzeba zainstalować także kmod-usb-serial-sierrawireless lub kmod-usb-acm. Zobacz także wsparcie dla modemów USB w OpenWrt.

Konfiguracja

Plik konfiguracyjny zawarty jest w /etc/config/3ginfo. Możliwe opcje do ustawienia:

  • device - wymagany, interfejs diagnostyczny modemu USB. Ale może mieć wartość pustą, która powoduje automatycznie wykrycie i przypisane pierwszego znalezionego portu (UWAGA: automat nie zawsze znajduje poprawny port). Dla modemów typu HiLink powinien tu zostać wpisany adres IP modemu (np. 192.168.8.1) i ustawiona odpowiednia sekcja sieci - patrz poniżej.
  • network - opcjonalny, możliwość wyboru sekcji logicznej sieci z której będą odczytywane dane o połączeniu. Jeżeli nie jest ta opcja ustawiona to skrypt stara się wykryć na podstawie interfejsu określonego w device do jakiej sekcji w pliku /etc/config/network ma się odwołać
  • pincode - opcjonalny, kod PIN do karty SIM
Opcje pincode można zostawić pustą o ile zostanie ona podana poprawnie w odpowiedniej sekcji pliku /etc/config/network. Należy ją zignorować, jeżeli karta SIM nie ma kodu PIN.

  • http_port - opcjonalny, port na którym będzie nasłuchiwał demon www (domyślnie 81)

Interfejs komunikacyjny

Jeżeli opcja device jest pusta (lub jej nie ma) program automatycznie wykryje pierwszy port na którym jest możliwa komunikacja z modemem i zapisze go w pliku konfiguracyjnym. Nie zawsze może to być właściwy port, w przypadku złego wykrycia lub w przypadku podłączenia większej ilości modemów właściwy port można ustawić poleceniami


    # uci set 3ginfo.@3ginfo[0].device=/dev/ttyUSB1
    # uci commit 3ginfo

podając oczywiście odpowiednie urządzenie. Zwykle powinno podawać się ostatni z interfejsów należących do urządzenia (przykład: jeżeli modem zapewnia ttyUSB0, ttyUSB1 oraz ttyUSB2 podajemy ten ostatni, czyli /dev/ttyUSB2 - nie jest to niestety regułą). Dla urządzeń korzystających ze sterowników HSO powinno się podać /dev/ttyHSx (w zależności od posiadanego urządzenia), dla urządzeń CDC ACM zwykle jest to /dev/ttyACMx. Za "x" należy oczywiście podstawić odpowiedni numer interfejsu. Dla niektórych protokołów może to być także /dev/cdc-wdm0. Jeżeli w systemie nie ma interfejsów szeregowych (modem powinien je udostępniać) to należy "zrobić" je ręcznie - opis zawarty jest w poradniku Router 3G/4G/5G.

Jeżeli używamy modemu Huawei typu HiLink można wskazać adres IP modemu:


    # uci set 3ginfo.@3ginfo[0].device=192.168.8.1
    # uci commit 3ginfo
    oraz koniecznie instalujemy pełną wersję programu wget np.
    # opkg install wget-ssl

W zależności od modemu adres może być inny, np. 192.168.1.1.

Jeżeli chcemy włączyć obsługę wielu modemów, należy utworzyć kolejne sekcje konfiguracyjne, np.


    # uci add 3ginfo 3ginfo
    # uci set 3ginfo.@3ginfo[-1].device='/dev/ttyUSB2'
    # uci set 3ginfo.@3ginfo[-1].network='wanb'
    # uci commit 3ginfo

Można dodać dowolną ilość sekcji. W dodatkowych sekcjach nie ma znaczenia opcja http_port.

Kod PIN

Aby program poprawnie działał, modem MUSI być zarejestrowany w sieci operatora. W przypadku kart posiadających kod PIN należy albo zdefiniować sekcję w pliku network i podać prawidłowy kod PIN, lub zdefiniować opcję pincode w pliku 3ginfo.
Ustawienie kodu pin:


    # uci set 3ginfo.@3ginfo[0].pincode=1234
    # uci commit 3ginfo

Sekcja konfiguracyjna sieci

Jeżeli modem nie jest w sekcji wan, można dodatkowo wskazać nazwę logiczną sieci, aby odczytywać np. status połączenia:


    # uci set 3ginfo.@3ginfo[0].network=wan2
    # uci commit 3ginfo


Testy

Informacja tekstowa

Wystarczy uruchomić program


    # 3ginfo

aby wyświetlić informacje w postaci tekstowej. Przykładowy wynik:


    Device: Sierra Wireless, Incorporated EM7455B
    Revision: SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09
    IMEI: 3-------------7
    ICCID: 8------------------4

    Connected time: 0d, 00:28:01
    TX: 126.3 KiB
    RX: 7.1 MiB

    Signal: 100 %
    Mode: LTE B7 (2600 MHz)
    Operator: PLAY (260 06)
    Registration: registered, home network
    Temperature: 29 °C
    CellID: 1765423 (1AF02F)
    LAC: 65534 (FFFE)
    TAC: 119 (0077)
    Primary band: B7 (2600 MHz) @20 MHz
    EARFCN DL: 3350
    EARFCN UL: 21350
    RSSI: -48/-51 dBm
    RSRP: -81/-82 dBm
    RSRQ: -11.1 dB
    SINR: 9.0 dB


Jeżeli chcemy uzyskać wynik w formacie json wystarczy wywołać polecenie z odpowiednim argumentem:


{"res":[
[{
"vendor":"Sierra Wireless, Incorporated",
"product":"EM7455B",
"revision":"SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09",
"imei":"3-------------7",
"iccid":"8-----------------1"
},{
"status": "CONNECTED",
"conn_time": "0d, 00:25:14",
"conn_time_sec": "1514",
"conn_time_since": "20240311200744",
"rx": "5.8 MiB",
"tx": "173.7 KiB"
},{
"csq":"31",
"signal":"100",
"operator_name":"Plus",
"operator_mcc":"260",
"operator_mnc":"01",
"mode":"LTE_A B3 (1800 MHz) / B7 (2600 MHz)",
"registration":"1",
"lac_dec":"65534",
"lac_hex":"FFFE",
"cid_dec":"2742786",
"cid_hex":"29DA02",
"addon":[{"idx":10,"key":"Temperature","value":"34 °C"},{"idx":23,"key":"TAC","value":"11041 (2B21)"},{"idx":35,"key":"RSSI","value":"-49/-50 dBm"},{"idx":36,"key":"RSRP","value":"-78/-83 dBm"},{"idx":37,"key":"RSRQ","value":"-8.0 dB"},{"idx":38,"key":"SINR","value":"9.0 dB"},{"idx":30,"key":"Primary band","value":"B3 (1800 MHz) @20 MHz"},{"idx":34,"key":"EARFCN DL","value":"1300"},{"idx":34,"key":"EARFCN UL","value":"19300"},{"idx":50,"key":"(S1) band","value":"B7 (2600 MHz) @20 MHz"},{"idx":54,"key":"(S1) EARFCN","value":"2850"},{"idx":55,"key":"(S1) RSSI","value":"-70/-68 dBm"},{"idx":56,"key":"(S1) RSRP","value":"-87/-84 dBm"}]
}
]]}

Zawartość różni się w zależności od zastosowanego modemu komórkowego.

Strona WWW

Program dynamicznie generuje stronę www przy pomocy której można odczytać parametry połączenia. Strona obsługiwana jest przez osobny proces serwera www nasłuchującego na porcie 81, czyli można odwołać się do niej wpisują w przeglądarkę adres routera z podanym portem, np. http://192.168.1.1:81.



Wyświetlane informacje:
- sekcja "Urządzenie"

Informacje o urządzeniu - producent, model, wersja, numer IMEI oraz numer karty SIM (ICCID).

- sekcja "Parametry"

Różne parametry pracy modemu - tryb pracy, poziom sygnału, operator i inne, w zależności od typu modemu.

- sekcja "Połączenie z internetem"

Informacja o czasie połączenie bieżącej sesji z internetem oraz ilość danych wysłanych i ilość danych pobranych.

Plugin dla Gargoyle

Jeżeli używamy Gargoyle i wystarczy nam podstawowy zestaw informacji to zamiast w/w poleceń należy zainstalować sam dodatek:


    # opkg install plugin-gargoyle-3ginfo-extended




Siła sygnału

Jeżeli używany jest modem z protokołem qmi, możliwe jest wyświetlenie parametrów korzystając z tego protokołu:


    # opkg update
    # opkg install 3ginfo-qmisignal

Adres podstrony: http://192.168.1.1/qmisignal.html.



3ginfo-qmisignal do działania wymaga połączenia z internetem, ponieważ korzysta z komponentów dostępnych on-line. Nie należy w trakcie działania 3ginfo-qmisignal uruchamiać uqmi gdyż może dojść do zawieszenia się uqmi. 3ginfo-qmisignal nie wymaga do działania pakietów 3ginfo czy 3ginfo-text.

Problemy

  • brak wyświetlania danych - same kreski
Podane urządzenie w pliku konfiguracyjnym nie jest poprawnym interfejsem do modemu, modem nie odpowiada na tym interfejsie, ten port jest zajęty przez inny proces lub aktualnie nawiązanie jest połączenie.

  • wyświetlana jest tylko część informacji
Oznacza to tylko tyle, że modem nie jest kompatybilny ze wszystkimi poleceniami i wymaga innego sposobu komunikacji. Zobacz uwagę na początku dokumentu.

Historia zmian

  • 2024-03-14
- przeprojektowany interfejs www. Stare wersje pakietów dodane mają w nazwie -old

  • 2019-04-18
- różne aktualizacje dla 3ginfo-lite
- aktualizacja frameworka bootstrap dla 3ginfo-qmisignal

  • 2017-12-27
- odczytywanie informacji z modemu ZTE MF823

  • 2017-12-26
- różne poprawki dla 3ginfo-lite

  • 2017-06-15
- 3ginfo-lite: dodanie statusu rejestracji karty SIM, odczytywanie nazwy operatora z poleceń AT

  • 2017-05-24
- dla Orange i T-Mobile należy przeszukać btsearch.pl bez uwzględniana sieci, bo operatorzy mogą korzystać z BTSów NetWorks!

  • 2017-04-22
- OpenCelliD wymaga rejestracji, więc powrót do btsearch.pl, tym bardziej że w bazach znajduje się informacja o stacjach LTE

  • 2017-01-06
- dodanie wizualizacji parametrów połączenia odczytywanych przez uqmi

  • 2016-12-10
- dodanie wersji "lite" - wyświetla tylko informacje o operatorze, technologii i sile sygnału. Działa tylko z modemami z interfejsem AT, nie wymaga konfiguracji. Dane zwracane są tylko w formacie json

  • 2016-11-12
- odczyt parametrów RSCP/ECIO/RSRQ/RSRP z uqmi (o ile używany jest protokół qmi)

  • 2016-10-07
- naprawa wyświetlania RSCP/ECIO dla modemów Huawei Hilink w trybach innych niż LTE

  • 2016-10-01
- dodanie obsługi ^HCSQ dla modemów HUAWEI (np. ME909u-521)
- dodanie wyświetlania SINR

  • 2016-09-27
- wykorzystanie serwisu http://opencellid.org/ zamiast http://btsearch.pl do lokalizacji na podstawie LAC/CellID

  • 2016-09-26
- dodanie odczytu z generycznych modemów Qualcomm

  • 2016-09-23
- usunięcie wyliczania RNC/eNB - wyświetlanie surowego wyniku z modemów

  • 2016-09-16
- dodanie wyświetlania wyniku w formacie json
- dodanie skryptu dla modemów Alcatel (typu HiLink)
- zmiana polecenia 3ginfo-test na 3ginfo test
- zmiana nazwy stron z "3G/LTE" na "3G/4G"

  • 2016-09-02
- dodanie odczytu parametru TAC (Tracking Area Code) dla LTE

  • 2016-04-10
- ignorowanie wyboru operatora (ręczny/automatyczny) dla modemów ZTE

  • 2016-02-23
- lepsza metoda wyszukiwania stanu interfejsu
- możliwość wyłączenie na stronie www przycisku połączenia

  • 2016-02-18
- pobieranie informacji o sile sygnału z różnych danych dla modemów HiLink (fix dla E3131)

  • 2016-02-09
- sprawdzenie istnienia wartości rssi dla modemów Huawei HiLink

  • 2016-01-13
- lepsze wyszukiwanie operatora dla modemów ZTE

  • 2015-12-13
- dodane skryptu dla Lycamobile

  • 2015-10-25
- lepsze wykrywanie sekcji sieci do której podłączony jest modem

  • 2015-10-17
- dodanie skryptu dla Virgin Mobile #Freemium

  • 2015-07-25
- parsowanie technologii z COPS bazując na TS 27.007 V10.4.0

  • 2015-05-05
- dodanie obsługi RSCP i Ec/IO dla modemów Huawei HiLink

  • 2015-04-30
- dodanie obsługi modułów SIMCom

  • 2015-04-21
- dodanie parametrów RSCP, Ec/IO, RSRP, RSRQ, wyróżnienie nazwy HiLink

  • 2015-04-17
- poprawki w obsłudze modemów Huawei HiLink

  • 2015-04-16
- dodanie obsługi modemów Huawei HiLink

  • 2015-02-07
- wybranie właściwej sekcji konfiguracyjnej network przy odczycie czasu połączenia
- możliwość odczytu operatora przy ręcznym wyborze sieci

  • 2015-02-05
- dodanie opcji konfiguracyjnej network pozwalającej na jawne określenie sekcji sieci związanej z modemem

  • 2014-11-22
- naprawa wyszukiwania danych z plikach btsearch.pl
- dodanie obsługi plików clf spakowanych gzip

  • 2014-06-08
- dodanie wyświetlania eNodeB dla połączeń LTE

  • 2013-12-19/20
- dodanie wyszukiwania interfejsu sieciowego wwan0/usb0, tym samym pokazywanie danych o statusie połączenia, czasie i przetransmitowanych danych dla połączeń NDIS/QMI

  • 2013-10-20
- zmiana skryptu odpytującego urządzenie, na potrzeby niektórych urządzeń, np Huawei E3276 - odczyt LAC/CID

  • 2013-09-08
- dodano opcję wykrywania interfejsów dla urządzeń Option
- dodano tworzenie dowiązań dynamicznych podczas instalacji pakietu
- usunięto zbędne pliki z wersji text

  • 2013-08-19
- aktualizowanie poziomu sygnału dla Garogoyle

  • 2013-08-16
- automatycznie wyszukiwanie interfejsów wykonuje się teraz "od tyłu" - dla większości modemów interfejs diagnostyczny jest po interfejsie komunikacyjnym, więc w ten sposób jest większa szansa znalezienia właściwego

  • 2013-08-15
- dostępny jest także plugin do Gargoyle prezentujący ten sam zakres informacji

  • 2013-08-14
- rozdzielenie pakietu na cześć tekstową i pozostały pakiet

  • 2013-06-06
- rozwiązanie problemu z wyświetlaniem lokalizacji która ma wykrzykniki w nazwie

  • 2013-04-30
- dodano możliwość automatycznego wykrywania urządzeń ACM
- dodano możliwość inne sposobu odczytu czasu połączenia

  • 2013-04-06
- modyfikacja skryptu odczytującego dane z modemu - powinny wyświetlać się szybciej
- mała modyfikacja skryptu limitu dla Orange Free na Kartę

  • 2013-02-14
- zmiany w sposobie obsługi technologii - powinny działać z modemami typu Huawei E122

  • 2013-01-06
- skrypt sprawdzający limit w mBank na kartę - pdu
- zmiany w kodzie obsługi modemów ZTE

  • 2012-12-09
- zmiana kodu sprawdzającego limit w Orange Free na Kartę (było: *100*1*2#, jest: *101*01#)

  • 2012-11-24
- skrypt sprawdzający limit w mBank na kartę

  • 2012-10-09
- ukończenie tłumaczeń programu, dochodzi dodatkowa opcja language

  • 2012-09-14
- automatyczne wykrywanie portu diagnostycznego
- modyfikacje przy odczycie profilu QoS

  • 2012-09-12
- skrypt sprawdzający limit w Orange Free na Kartę dla modemu MF100

  • 2012-09-11
- modyfikacja skryptu sprawdzającego limit w Orange Free na Kartę (obecnie jest tylko jedna wersja)

  • 2012-09-02
- przy braku operatora ma nie wyświetlać żadnych wartości

  • 2012-08-11
- uzupełnienie sprawdzania operatora dla modemów ZTE

  • 2012-08-05
- zastąpienie binarnego programu do konwersji PDU skryptem, dzięki czemu jest to bardziej uniwersalne
- lekka poprawa skryptów sprawdzających limit dla Play Fresh

  • 2012-07-30
- kolejne dostosowanie skryptów do bieżącej wersji Trunka (działa i Backfire i w Trunku)
- dodanie obsługi kodów USSD

  • 2012-07-24
- dostosowanie skryptów do bieżącej wersji Trunka (działa i Backfire i w Trunku)

  • 2012-06-23
- dodatkowy skrypt dla Blueconnect na kartę - PDU, autorstwa Krystiana Romaszewskiego

  • 2012-04-22
- przeniesienie informacji o operatorach do osobnego pliku, wyświetlanie MCC/MNC w każdym przypadku (o ile zostanie odczytany w modemu)

  • 2012-02-23
- dostosowanie skryptów do bieżącej wersji Trunka (działa i Backfire i w Trunku)

  • 2012-02-19
- wyświetlanie używanej technologii dla modemów Vodafone K3805-z (chip Icera)

  • 2011-10-06
- bardziej zaawansowanie wyszukiwanie sekcji połączenia w /etc/config/network, istotne dla systemów z kilkoma modemami GSM obsługiwanymi przez ten sam sterownik

  • 2011-09-16
- obsługa dodatkowego polecenia dla nowych modemów Huawei (wyświetlanie m.in. informacji o technologii LTE)

  • 2011-09-15
- wsparcie dla Cyfrowego Polsatu LTE
- dodatkowy skrypt dla Orange Free na Kartę - PDU
- zmiana nazwy pluginu na 3ginfo-plugin-pdu

  • 2011-09-03
- poprawa kodu js dla poprawnego działania z przeglądarką Chromium
- ujednolicenie wyglądu linków zewnętrznych
- nowa podstrona reprezentująca dynamicznie siłę sygnału

  • 2011-08-28
- bardziej zaawansowanie wyszukiwanie sekcji połączenia w /etc/config/network, istotne dla systemów z kilkoma modemami GSM

  • 2011-08-13
- dodatkowe polecenie pozwalające na sprawdzenie LAC/CID (niezbędne dla Aero2)

  • 2011-08-11
- poprawa skryptu uwzględniająca możliwość występowania w odpowiedzi modemu liter w różnych wielkościach
- dodatkowy skrypt sprawdzający limit dla Play Fresh
- dodatkowy plugin sprawdzający limit dla Play Fresh dla modemów odpowiadających w formacie PDU
- obsługiwany modem ZTE MF100

  • 2011-08-09
- aktualizacja skryptu sprawdzania limitu dla Pakietów Internetowych z Play Fresh
- dodano możliwość dekodowania wiadomości PDU
- drobne zmiany związane z Aero2

  • 2011-08-06
- bardziej poprawne wyświetlanie zawartości smsów na stronie

  • 2011-08-04
- dodano możliwość usuwania smsów z poziomu strony

  • 2011-08-03
- zmiany w skryptach, dodano możliwość wyświetlania lokalizacji po ręcznym pobraniu pliku z BTSami (patrz poniżej), po kliknięciu na nazwę wyświetla się lokalizacja w Google Maps.

  • 2011-07-16
- dodano nazwę sieci Aero2, wyświetlanie czasu trwania połączenia, ilości wysłanych i pobranych danych

  • 2011-05-20
- dodano do konfiguracji port nasłuchu demona www, dodano nazwę sieci T-Mobile (dawna Era)

  • 2011-05-14
- zmieniono mechanizm podania kodu PIN, wykrywania LCID/RNC, poprawki skryptu

  • 2011-02-01
- dostępna jest łatka do poprawnej obsługi Huawei K3765-HV. Jak ktoś chętny niech da znać (podziękowania dla Piotra Oleszczyka)

  • 2010-12-27
- sprawdzenie limitu dla Orange Free na Kartę

  • 2010-11-25
- wyświetlanie używanej technologii dla modemów Sierra Wireless, np Compass 889
- wyświetlanie używanej technologii dla modemów Novatel, np. Ovation MC990D
- sprawdzenie limitu dla Cyfrowego Polsatu

  • 2010-11-19
- dodanie opcji pincode do automatycznego rejestrowanie u operatora (odczytywana z konfiguracji sieci lub niezależnej opcji)

  • 2010-11-13
- wsparcie dla Cyfrowego Polsatu oraz modemów ZTE, np. MF668

  • 2010-11-04
- dodanie możliwości wyświetlania danych w postaci tekstowej

  • 2010-10-27
- dodanie wyświetlania informacji o RNC oraz Long CID

  • 2010-10-19
- dodanie wyświetlania nazwy urządzenia, uporządkowanie kodu w skryptach

  • 2010-10-18
- wsparcie dla urządzeń wykorzystujących sterowniki HSO - Option Icon 225 itp.

  • 2010-10-12
- uproszczenie podstawowego interfejsu, dodanie przycisku pozwalającego na połączenie/rozłączenie, przeniesienie większości informacji numerycznych do pozycji szczegółów.

  • 2010-10-05
- nowy interfejs z wykorzystaniem ajax: odczytywanie parametrów na bieżąco, odświeżanie tylko na żądanie, dodano status połączenia, wyświetlanie LAC/CID w postaci dziesiętnej po najechaniu myszą, możliwość wysyłania i odczytywania smsów.

  • 2010-09-19
- dodano możliwość sprawdzenia pozostałego limitu (MB) - obecnie tylko dla Play Fresh (Pakiety Internetowe 100MB/500MB/1GB)

  • 2010-09-01
- zmiana sposobu odpytywania urządzenia, wpływa na szybkość pobierania danych
- dodano szukanie lokalizacji wg krótkiego CID i operatora na portalu btsearch.pl

  • 2010-08-30
- dodano prosty interfejs do wysyłania smsów (wymaga instalacji pakietu gnokii)

  • 2010-08-29
- wyświetlanie dodatkowych informacji: LAC/CID, Profil UMTS QoS (podziękowania dla Patryka Jabłońskigo!)
- zmiany w skryptach: oczyszczenie kodu, sprawdzenie istnienia urządzenia oraz poprawności zwracanych parametrów
- kolorowanie wskaźnika siły sygnału

  • 2010-08-28
- wersja początkowa