Hamlib to projekt open source, który zapewnia programistom spójny interfejs programowania aplikacji (API) do sterowania amatorskimi radiotelefonami, rotatorami i wzmacniaczami. Projekt został założony w 2000 roku przez Franka Singletona (VK3FCS/KM5WS) i Stéphane'a Filloda (F8CFE). Hamlib nie jest gotową aplikacją użytkownika, lecz warstwą programową – biblioteką – przeznaczoną dla programistów programów do rejestrowania danych, oprogramowania do trybu cyfrowego, zdalnego sterowania i innych aplikacji sterujących. Dzięki temu autorzy oprogramowania mogą skupić się na funkcji programu i logice interfejsu, zamiast na implementacji poleceń CAT dla każdego radia osobno.
W artykule przeczytasz
Do czego służy Hamlib i dlaczego jest ważny?
Większość nowoczesnych transceiverów umożliwia sterowanie zewnętrzne za pośrednictwem interfejsu szeregowego. Problem polega na tym, że polecenia nie są spójne w modelach tego samego producenta ani między producentami. Hamlib rozwiązuje ten problem, prezentując aplikacjom „wirtualne radio” z ujednoliconym API – abstrakcją, w której ustawia się częstotliwość, tryb, VFO alebo PTT funguje rovnako bez ohľadu na to, či je na sériovom porte pripojený Yaesu FT-991A, Icom IC-7300, Kenwood TS-590SG lub dowolny inny obsługiwany transceiver.

Bez Hamliba każdy program musiałby implementować sterowanie każdym radiem osobno. Dzięki Hamlibowi programista musi jedynie posiadać wsparcie dla API Hamliba – i natychmiast uzyskuje dostęp do wszystkich urządzeń obsługiwanych przez Hamlib. Gdy Hamlib dodaje nowy backend, wszystkie aplikacje zbudowane na nim uzyskują wsparcie dla tego radia bez konieczności zmiany własnego kodu.
Hamlib zapewnia powiązania językowe dla języków C, C++, Perl, Python 2 i 3, Lua oraz TCL. Wersją stabilną w momencie pisania tego tekstu jest Hamlib 4.7.1. Codzienne migawki z gałęzi głównej i stabilnej Hamlib-4.7 są dostępne dla systemów Linux (pliki tarball ze źródłami) oraz Windows 32/64 bit.
Obsługiwane urządzenia

Wiki Hamlib dzieli obsługiwane urządzenia na trzy kategorie: amatorskie transceivery i odbiorniki radiowe (Obsługiwane Radia), rotatory antenowe (Obsługiwane Rotatory) oraz wzmacniacze liniowe (Obsługiwane Wzmacniacze). Lista obsługiwanych radioodbiorników stale rośnie i obejmuje urządzenia takich producentów jak Yaesu, Icom, Kenwood, Elecraft, FlexRadio, TenTec, Alinco, Aor, Drake, JRC, Lowe, Skanti, Uniden, Vertex i wielu innych. Wśród obsługiwanych rotatorów znajdują się Yaesu G-series, Hy-Gain, SPID, M2 Orion i inne. Lista wszystkich dostępnych modeli jest wyświetlana po wpisaniu polecenia. Prawo --list odpowiednio. rotctl --list.
Biblioteka jest przeznaczona dla urządzeń z protokołem portu i poleceń (CAT, CI-V itp.) do ustawiania częstotliwości, trybu, VFO, PTT i innych parametrów. Urządzenia, które nie obsługują sterowania szeregowego i umożliwiają jedynie klonowanie pamięci (większość transceiverów VHF/UHF FM) nie wchodzą w zakres Hamliba – zaleca się w ich przypadku projekt CHIRP.
FAQ: często zadawane pytania
Czym w skrócie jest Hamlib?
Hamlib to oparta na języku C biblioteka podprogramów linkowalnych, opracowana głównie z wykorzystaniem narzędzi GNU w systemie Linux, ale skompilowana i funkcjonalna również w systemach Windows i macOS. Celem jest zapewnienie niezależnego od platformy API, które umożliwi twórcom aplikacji pisanie oprogramowania niezależnego od konkretnego modelu radia.
Dla kogo przeznaczony jest Hamlib?
Przede wszystkim dla programistów piszących aplikacje Rig control, logovanie a iné rádioamatérske programy. Bežní používatelia Hamlib neinštalujú priamo – zvyčajne ho dostávajú ako závislosť logovacieho programu alebo WSJT-X, Fldigi, CQRLog i podobne zastosowania.
Czy mogę używać Hamliba w dwóch programach jednocześnie?
Tylko jeden program może uzyskać dostęp do portu szeregowego w danym momencie. Rozwiązaniem jest: prawy – demon sieciowy, który uzyskuje dostęp do radia i komunikuje się z klientami za pomocą protokołu TCP. Uruchamia się go poleceniem prawy -m 210 -r /dev/ttyS1 & a następnie dowolny program łączy się z nim jak z modelem 2 (NET rigctl).
Co się stanie, jeśli wystąpi przekroczenie limitu czasu portu szeregowego?
Problem może być spowodowany przez interfejs CAT zasilany liniami RTS/CTS/DTR, gdzie po wykonaniu polecenia pojedynczego kroku kondensatory elektrolityczne interfejsu nie są jeszcze naładowane. Rozwiązaniem jest przełącznik. -C rts_state=WŁ., która wymusza włączenie RTS i włączenie interfejsu przed wysłaniem pierwszego polecenia.
Jak podłączyć własny program do Hamlib?
Hamlib używa pkg-configKompilacja odbywa się na przykład za pomocą polecenia gcc -o myprog `pkg-config --cflags --libs Mała wioska` myprog.cW przypadku projektów autoconf/automake istnieje makro PKG_CHECK_MODULES(Mała wioska, Mała wioska, ...).
Narzędzia Hamlib: przegląd narzędzi wiersza poleceń
| Pożytek | Opis | Domyślny port TCP |
|---|---|---|
| Prawo | Interaktywne lub skryptowe sterowanie transceiverem z wiersza poleceń. Bezpośrednio otwiera port szeregowy/USB – tylko jeden program może korzystać z portu na raz. | – |
| prawy | Demon TCP dla transceiverów. Otwiera port szeregowy i umożliwia kontrolę nad gniazdem TCP. Umożliwia jednoczesne połączenia wielu klientów. Współdzielona kontrola nad platformą dla WSJT-X, Fldigi, CQRlog i innych. | 4532 |
| rotctl | Interaktywne lub skryptowe sterowanie obrotnicą anteny z poziomu wiersza poleceń. | – |
| rotctld | Demon TCP dla rotatorów. Działa na tej samej zasadzie co rigctld dla transceiverów. | 4533 |
| ampctl | Sterowanie wzmacniaczem liniowym z wiersza poleceń. | – |
| ampctld | Demon TCP dla wzmacniaczy liniowych. | 4534 |
| rigctlcom | Emulacja portu COM dla programów, które nie potrafią połączyć się z gniazdem TCP programu rigctld, ale wymagają natywnego portu szeregowego. | – |
| rigswr | Pomiar SWR przy użyciu radia; skanuje zakres częstotliwości, a transceiver nadaje i zapisuje wartości SWR. | – |
| rigsmtr | Pomiar poziomu sygnału (S-metr) przy użyciu radia; skanuje zakres częstotliwości i zapisuje zmierzone wartości. | – |
| rygor | Tworzenie kopii zapasowych, przywracanie i manipulowanie zawartością kanałów pamięci transceivera. | – |
Polecenia dla Prawo I prawy są współdzielone – wielka litera zazwyczaj wskazuje set príkaz (napr. F dla set_freq), małe litery get príkaz (napr. f dla get_freq). Przypisanie modelu radia odbywa się za pomocą przełącznika -m IDport szeregowy jest określony przez przełącznik -r /dev/ttyUSBx (Linux) lub -r COMx (Okna).
Kontrola urządzeń sieciowych Hamlib przez TCP
Kontrola sieci jest integralną częścią Hamlib. Demony TCP prawy I rotctld korzystają z prostego protokołu tekstowego – polecenia są wysyłane jako ciągi znaków ASCII, odpowiedzi na polecenia są zwracane jako wartości wiersz po wierszu, a warunki błędów jako RPRT x kde x to ujemna liczba kodu błędu. Demony umożliwiają jednoczesne połączenie wielu klientów.
Procedura praktyczna: uruchomienie demona dla Kenwood K3 na pierwszym adapterze USB-szeregowym:
prawy -m 229 -r /dev/ttyUSB0 &
Następnie każdy program zgodny z Hamlib jest konfigurowany tak, aby Net rigctl (model 2) s adresou localhost:4532W ten sposób WSJT-X, Fldigi i CQRlog mogą współdzielić jedno fizyczne radio bez konfliktu portów szeregowych. Oprócz standardowego protokołu, obsługuje on prawy także rozszerzony protokół Extended Response Protocol, który odsyła otrzymane polecenie jako nagłówek i wartości jako pary klucz:wartość - przydatny dla klientów uzyskujących dostęp do demona bezpośrednio przez gniazdo TCP bez biblioteki Hamlib.
Dla programistów: aplikacje napisane w oparciu o API Hamlib C/C++ mogą uzyskiwać dostęp do demonów za pośrednictwem modeli zaplecza NET rigctl a NET rotctl (model 2 pre oba typy zariadení). Nastavenie zo strany aplikácie pozostáva z výberu modelu 2, zadania nazwa hosta:port takie jak urządzenia, szybkość transmisji i ustawienia bitów stopu podczas uruchamiania demona.
Filmy
Poniższy film (WA4EFS) przedstawia klienta GUI, który łączy się z programem nasłuchującym TCP rigctld i umożliwia interaktywne testowanie oraz wykorzystanie interfejsu CAT transceivera:
Film od AG7GN (Western Washington DX Club) pokazuje integrację Hamlib, Fldigi i FLrig, w tym konfigurację rigctld jako wspólnego zaplecza sterującego platformą dla wielu aplikacji jednocześnie:
Film pokazuje instalację Hamlib 4.1 ze źródeł na Raspberry Pi — procedura przydatna dla każdego, kto chce mieć najnowszą wersję oprogramowania, zanim pojawi się ona w repozytorium dystrybucji:
Nowości w Hamlib – wybrane zmiany w stosunku do ostatnich wersji
Wersja 4.6.4 (wydana 18 lipca 2025 roku, w 25. rocznicę projektu Hamlib) naprawiła obsługę znaków niedrukowalnych w pliku Kenwood.c, co powodowało awarię TM-D710 i TM-V71 przy używaniu EOM_TH (\r) jako terminatora poleceń. Naprawiono wyciek pamięci w pliku rigctl_parse.ca i wprowadzono unikalny znak separatora dla każdego połączenia rigctld. Wydanie zostało poświęcone pamięci Michaela Blacka, W9MDB (SK), wieloletniego współpracownika i kierownika projektu w latach 2020–2025.
Spośród ostatnich zmian w gałęzi głównej (w kierunku wersji 4.7) według pliku NEWS istotne są następujące wiadomości:
Hamlib uruchamia serwer multicastowy, który wysyła informacje o stanie radia (odbiór poleceń nie jest jeszcze zaimplementowany). Dodano obsługę. --bind-all (-B) Do prawy aby połączyć się ze wszystkimi dostępnymi interfejsami sieciowymi – naprawia duplikaty wystąpień prawy w systemie Windows. Transceivery Yaesu mogą być wyślij_Morse'a wysyłaj wiadomości kluczowe 1–5 lub CW správu do 50 znakov. Príkaz miernik poziomu zestawu wiertniczego akceptuje argumenty SWR, COMP, ALC, IC/ID, DB, PO, VDD, TEMP pre výber zobrazovaného metra. Pridaný je prístup k GPIO1–4 na CM108 zariadeniach cez pobierz/ustaw_GPIO W Prawo/prawyFunkcjonować prawy pozwala opcjonalnie zacząć od autopower_on=0, co zapobiega przekroczeniom limitu czasu podczas uruchamiania, gdy transceiver jest wyłączony. Dodano opcjonalną ochronę hasłem dla prawy przez przełącznik - I , gdzie klient uwierzytelnia się za pomocą polecenia \hasło.
Gdzie pobrać i jak się przyczynić
Aktualna stabilna wersja Hamlib 4.7.1 jest dostępna pod adresem GitHub i SourceForge. Pakiety dla systemów Windows 32 i 64-bitowych są dostępne w formacie ZIP lub samorozpakowującym się pliku EXE. Codzienne migawki gałęzi głównej i stabilnej są dostępne na stronie hamlib.sourceforge.net/snapshots/. Dyskusja i pomoc techniczna są dostępne na liście mailingowej hamlib-developer (SourceForge) oraz kanale IRC #hamlib na irc.oftc.net. Poprawki są przesyłane poprzez żądanie ściągnięcia z GitHub lub łatkę na listę mailingową.
