Rig2Cast Lib je open-source framework napsaný v jazyce C# pro platformu .NET 8, určený k ovládání rádiových transceiverů. Autor DeXTeRGT ho koncipoval jako modulární základ pro desktopové aplikace, webová rozhraní, background služby a síťové klienty – s vlastní abstrakcí rádia, bezpečným multi-klientským chodem, modulárními ovladači jednotlivých modelů, zjišťováním schopností zařízení a volitelnými protokolovými adaptéry.
V článku se dočtete
Proč vznikl Rig2Cast Lib a je potřebný?
Hamlib slúži rádioamatérskej komunite mimoriadne dobre – podporuje impozantné množstvo rádií a predstavuje desaťročia skúseností s CAT protokoly a fyzickým hardwarem. Jeho nativní architektura v jazyce C se však podle autora ne vždy přirozeně integruje do spravovaných .NET aplikací. Použití z C# běžně vyžaduje nativní binárky, platformově specifické nasazení, interoperabilní vrstvu a dodatečnou synchronizaci kolem sdíleného přístupu k rádiu. Moderní aplikace navíc často potřebují bezpečně zpřístupnit jedno rádio více klientům najednou přes nativní API, REST, gRPC, TCP, desktopové aplikace a webová rozhraní.
Rig2Cast Lib k tomuto problému přistupuje z nového architektonického směru. Autor výslovně uvádí, že nejde o náhradu Hamlibu ani o jeho přímý přepis (line-by-line port) do C# – jde o nezávislé přehodnocení ovládání rádia pro moderní .NET aplikace. Oficiální dokumentace výrobce je autoritou pro implementaci CAT protokolu; Hamlib slouží jako užitečná reference očekávaného chování a důležitý cíl kompatibility, ale samotná architektura a implementace Rig2Cast se vyvíjí nezávisle na dostupných CAT protokolech rádií.
Cílem není soupeřit s Hamlibem ani ho znevažovat. Hamlib zůstává důležitým projektem, neocenitelným zdrojem zkušeností a významným cílem kompatibility. Rig2Cast zkoumá ovládání rádia navržené specificky pro moderní .NET: asynchronní, modulární, řízené schopnostmi zařízení, bezpečné pro více klientů, nezávislé na transportní vrstvě a snadno rozšiřitelné.
Jedno zařízení a více přistupujících softwarů k němu

Fyzické CAT připojení je ve své podstatě sekvenční – více aplikací nemůže bezpečně posílat libovolné příkazy na stejný sériový port současně. Rig2Cast proto poskytuje jeden spravovaný plánovač příkazů na fyzické rádio. Více logických klientů může pracovat souběžně, zatímco samotná CAT komunikace zůstává sériová, uspořádaná a chráněná.
Každá aplikácia alebo sieťové pripojenie dostáva vlastnú logickú identitu a reláciu. Runtime poskytuje role a oprávnenia klientov, usporiadané vykonávanie príkazov s prioritami, exkluzívne operácie, prístup založený na časovo obmedzených nájmoch pre citlivé operácie, čistenie relácie po odpojení a bezpečnú koordináciu medzi súbežnými klientmi. Zložené zmeny môžu byť transakčné na úrovni operácie rádia – napríklad zmena módu a šírky pásma môže prebehnúť pod exkluzívnou kontrolou tak, aby iný klient nemohol vložiť príkaz medzi tieto dve zmeny.Operace vysílání mají dodatečnou ochranu a nejsou zpracovány jako běžné nastavovací příkazy (settery).
Stejná spravovaná instance rádia je určena na podporu volitelných rozhraní: nativní C# API, REST API (plánováno), gRPC (plánováno), bohatší nativní TCP protokoly (plánováno), adaptér kompatibilní s Hamlib rigctld (dostupná počáteční implementace), a desktopové i webové aplikace či background služby. Jedná se o adaptéry kolem téhož runtime a modelu schopností – CAT logika výrobce zůstává uvnitř ovladače rádia místo toho, aby se duplikovala napříč každým API a uživatelským rozhraním.
Možná kompatibilita s Hamlib

Rig2Cast obsahuje samostatný, volitelný TCP adaptér kompatibilní s rigctld. Stávající klienti kompatibilní s Hamlib se mohou připojit, zatímco Rig2Cast v pozadí spravuje fyzické rádio, logické pořady a sériový CAT přístup. Aktuální adaptér podporuje několik souběžných TCP klientů a příkazy pro frekvenci a aktivní VFO, provozní mód a mód-závislou šířku pásma, split provoz a čtení stavu PTT, krátké i dlouhé formy příkazů a rozšířené odpovědi.
Adaptér poslouchá ve výchozím nastavení na loopback rozhraní a pracuje v režimu pouze pro čtení – zápis je nutno explicitně povolit, a zápisy PTT zůstávají v tomto počátečním kompatibilním adaptéru nedostupné. Cílem je praktická kompatibilita bez oslabení bezpečnostního modelu Rig2Cast. Framework zároveň není omezen legacy protokolem rigctld – nová funkcionalita může zůstat dostupná přes nativní C# API a budoucí REST, gRPC, TCP, desktopové nebo webové adaptéry i tehdy, když pro ni neexistuje žádný příkaz Hamlib.
Aktuální stav a stažení
Projekt je ve stadiu aktivního raného vývoje – architektura a funkční „vertikální řez“ (vertical slice) pro Yaesu FTDX10 jsou hotové, ale veřejné API ještě není stabilní. FTDX10 je prvním podporovaným a fyzicky otestovaným transceiverem, s pokrytím identifikace, frekvence VFO A/B, provozních módů, split provozu, CAT PTT, filtrů, zesílení AF/RF, potlačovača šumu, RIT/XIT, S-metra a ďalších meračov. Súčasne prebieha aj počiatočná podpora rodiny Elecraft K3/K3S/KX3/KX2, implementovaná podle oficiální dokumentace výrobce, se základní vrstvou ověřenou na fyzickém K3S.
| Parametr | Hodnota |
|---|---|
| Jazyk a platforma | C#, .NET 8 |
| Licencia | GNU AGPL-3.0-only |
| Podporované rádiá | Yaesu FTDX10 (fyzicky testované), Elecraft K3S/K3/KX3/KX2 (raná fáza) |
| Počet automatizovaných testov | 137 |
| Predvolený port rigctld adaptéra | 127.0.0.1:4532 |
Zdrojový kód, dokumentácia aj návod na zostavenie sú dostupné v repozitári DeXTeRGT/Rig2CastLib na GitHube. Zostavenie vyžaduje .NET 8 SDK a funguje na Windows aj Linuxe; pre prácu bez fyzického rádia je súčasťou aj simulátor FTDX10. Autor otvorene uvádza, že významná časť kódu, testov a dokumentácie vznikla s pomocou AI asistencie pod ľudským dohľadom – požiadavky, architektonické smerovanie, bezpečnostné rozhodnutia aj finálne technické rozhodnutia zostávajú pod kontrolou vlastníka projektu, pričom vygenerovaný kód prechádza rovnakým procesom kontroly, kompilácie, testovania a overenia proti fyzickému rádiu ako akýkoľvek iný príspevok.
