Po metų kūrimo buvo suformuotas naujas reikšmingas nemokamos skaitmeninio signalų apdorojimo platformos GNU Radio 3.10 leidimas. Platformoje yra programų ir bibliotekų rinkinys, leidžiantis sukurti savavališkas radijo sistemas, moduliavimo schemas ir gaunamų bei siunčiamų signalų formą, kuri nurodyta programinėje įrangoje, o signalams užfiksuoti ir generuoti naudojami paprasti aparatūros įrenginiai. Projektas platinamas pagal GPLv3 licenciją. Daugumos „GNU Radio“ komponentų kodas parašytas „Python“ našumui ir vėlavimui svarbios dalys yra parašytos C++ kalba, kuri leidžia paketą naudoti sprendžiant problemas realiuoju laiku.
Kartu su universaliais programuojamais siųstuvai-imtuvais, nesusietais su dažnių juosta ir signalo moduliacijos tipu, platforma gali būti naudojama kuriant tokius įrenginius kaip GSM tinklų bazinės stotys, nuotolinio RFID žymų (elektroninių ID ir leidimų, išmaniųjų) nuskaitymo įrenginiai. kortelės), GPS imtuvai, WiFi, FM radijo imtuvai ir siųstuvai, TV dekoderiai, pasyvieji radarai, spektro analizatoriai ir kt. Be USRP, paketas gali naudoti kitus aparatūros komponentus signalų įvestims ir išvestims, pavyzdžiui, garso plokščių tvarkykles, TV imtuvus, BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP ir Galimi S įrenginiai -Mini.
Tai taip pat apima filtrų, kanalų kodekų, sinchronizavimo modulių, demoduliatorių, ekvalaizerių, balso kodekų, dekoderių ir kitų radijo sistemoms kurti reikalingų elementų rinkinį. Šie elementai gali būti naudojami kaip statybiniai blokai, norint surinkti gatavą sistemą, kuri kartu su galimybe nustatyti duomenų srautus tarp blokų leidžia projektuoti radijo sistemas net neturint programavimo įgūdžių.
Pagrindiniai pakeitimai:
- Pridėtas naujas modulis gr-pdu, kuriame yra įrankiai, skirti manipuliuoti PDU (Protocol Data Unit) tipo objektais, naudojami duomenims perduoti tarp GNU radijo blokų. Iš gr-blocks modulio visi PDU blokai perkelti į gr-network ir gr-pdu modulius, o vietoj gr-blocks paliktas sluoksnis, užtikrinantis atgalinį suderinamumą. Vektoriniai PDU tipai dabar pasiekiami gr::types vardų srityje, o PDU manipuliavimo funkcijos dabar pasiekiamos gr::pdu vardų erdvėje.
- Pridėtas naujas modulis gr-iio, kuris suteikia įvesties / išvesties sistemą, skirtą organizuoti duomenų mainus tarp GNU radijo ir pramoninių įrenginių, pagrįstų IIO (Industrial I/O) posistemiu, pvz., PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3. -EBZ, AD -FMCOMMS4-EBZ, ARRADIO ir AD-FMCOMMS5-EBZ.
- Buvo pasiūlytas eksperimentinis Custom Buffer klasės palaikymas, kuris supaprastina duomenų perdavimą tarp GNU radijo blokų ir aparatūros greitintuvų, pagrįstų GPU, FPGA ir DSP. „Custom_buffer“ naudojimas leidžia nerašyti specialių blokų, leidžiančių pagreitinti GPU pusėje, ir leidžia tiesiogiai perkelti duomenis iš GNU Radio žiedo buferio į GPU atmintį, paleisti CUDA branduolius ir grąžinti duomenis su rezultatu į GNU radijo buferius.
- Registravimo infrastruktūra buvo perjungta į „spdlog“ biblioteką, kuri pagerino darbo su žurnalais naudojimą, pašalino iškvietimus į „iostream“ ir „cstdio“, suteikė palaikymą libfmt išraiškoms eilučių formatavimui ir modernizavo programos sąsają. Anksčiau naudota Log4CPP biblioteka buvo pašalinta kaip priklausomybė.
- Pereita prie naudojimo kuriant C++17 standartą. Boost::filesystem biblioteka buvo pakeista std::filesystem.
- Padidinti reikalavimai kompiliatoriams (GCC 9.3, Clang 11, MSVC 1916) ir priklausomybėms (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, 11B.2.4.3. pygccxml 2.0.0).
- Pridėtas Python susiejimas RFNoC blokams.
- Qt 6.2 palaikymas buvo pridėtas prie gr-qtgui grafinės sąsajos kūrimo blokų. GRC (GNU Radio Companion) GUI pridėta parinktis „--output“, skirta hierarchiniams blokams.
Šaltinis: opennet.ru
