Portál AbcLinuxu, 6. červen 2020 03:20


Dotaz: C++: osmo-trx minimalistická úprava radioInterface

5.3. 17:38 Zm
C++: osmo-trx minimalistická úprava radioInterface
Přečteno: 390×
Odpovědět | Admin
Zdravím. Do projektu osmo-trx si chci přibastlit SDRko, ke kterému mám proprietální low level knihovnu. Knihovna zapouzdřuje komunikaci s SDR přes DMA, kablibrace, multiplex kanálů, normalizace atd... Problém je že SDR předpokládá vzorky ve formátu float (klasicky se střídá I Q I Q ...) zatímco architektura - API osmo-trx počítá s formátem short. Teď to mám naimplementované tak, že v ovladači zařízení dělám převod ze shortu na float, ale jsou to dva zbytečné převody tam a zpět ve výkonostně citlivé části. Tx cesta je osmo-trx-core(float) -> radiointerface(short) -> device(float) -> proprietarylib(short) -> SDRHW(short) Rx cesta je stejná, jen opačným směrem.

A druhý pro problém je že to vlastně nefunguje, resp. tak nějak funguje Tx směr, síť vydím, ale nemůžu se k ní připojit a ve výpisech se asi po 2s objevuje "dumping STALE burst in TRX->SDR interface" což by mohlo značit výkonostní problémy.

Důvodů proč to nefunguje tam může být asi tak 1000 + 1. Chci se toho zbytečného převodu zbavit. Ideální by bylo, kdyby radiointerface umožňoval oba formáty současně, aby se ve stávajících ovladačích nemuselo nic měnit a zároveň aby změna v kódu společné vrstvy byla co nejmenší. Napadlo mě, že by to mohl být polymorfismus naruby, ale C++ ovládám tak na úrovni C.

https://github.com/osmocom/osmo-trx/blob/master/Transceiver52M/radioInterface.cpp
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Gréta avatar 5.3. 20:32 Gréta | skóre: 23 | blog: Grétin blogísek | Stockholm
Rozbalit Rozbalit vše Re: C++: osmo-trx minimalistická úprava radioInterface
Odpovědět | | Sbalit | Link | Blokovat | Admin

mi připadá takový divný že by to taklenc měli jen tak navíc jestli jako takový řešení výrazně žere výkon že to chcípe :O :O neděje se něco s těma bufframa když sou v těch shortech?? jestli převody žerou fakt tolik zdrojů že si toho doteďka jakoby nevšilmi?? neni jako fakt problém někde v tom tvým kusu kódu nebo tý proprietální knihově??

konverzi dělaj funkce convert_short_float a convert_float_short a jestli tam někde jako jenom tupě koukaj proti sobě a vypadne z toho nakonci co se tam nazačátku strčí tak samo takovou pitominu vynechat ;D

jinak todleto jako vypadá jako něco pro jendu ;D

✊3 things to learn in skiing: •how to put on your skis •how to slide downhill •how to walk along the hospital corridor✊
5.3. 21:11 Zm
Rozbalit Rozbalit vše Re: C++: osmo-trx minimalistická úprava radioInterface
Všechna SDR, která to oficiálně podporuje žerou short, tak to převádějí v té obecné vrstvě, ten zbytečný převod tam tím pádem nemají. Problém je, že ta moje karta, resp. knihovna k ní baští jen float. V knihovně asi problém nebude (leda v tom jak s ní pracuju já) zvládá bez problémů sample rate 40 MHz , na to GSM je sample rate 8MHz a nějaké drobné.

PS: na Jendu sem si vzpoměl, bylo by fajn, kdyby se na to mohl podívat :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.