Problémy s komunikací přes rádio

Dobrý den,

potkali jsme se na Amperu a lehce jsem vám nastínil náš problém. Jen pro připomenutí - používáme dongle + core jako moduly pro bezdrátovou komunikaci pc a našeho zařízení. Komunikace jede s periodou 100 ms a jednou za čas (někdy je to hodiny, jindy půlden) se komunikace přeruší na desítky sekund a pak zase obnoví.

Odesílání paketů řešíme v dongle následovně:

tx_buffer_radio[0] = ID;
tx_buffer_radio[1] = X;
tx_buffer_radio[2] = Y;
tx_buffer_radio[3] = 140;
bc_spirit1_set_tx_length(4);
bc_spirit1_tx();

Potvrzení přijetí si řešíme sami na vyšší vrstvě tím, že dostane odpověď od core. Bavili jsme se na místě, že ta komunikace sama o sobě je potvrzovaná, takže by to mohlo být nadbytečné. Případně, že při tak rychlé periodě by mohl případně nějaký registr začít přetékat.

Mohl bych poprosit o nějaké nasměrování, co ještě zkusit? Případně pak domluvit placenou konzultaci.

Díky
Dalibor

Dobrý den Dalibore,

pokud používáte přímo bc_spirit1_* funkce, tak jste ve stacku dostatečně nízko a zde potvrzování již není. Takže pokud máte vlastní potvrzování, tak je tam jediné. Na druhou stranu, pokud posíláte tak často, tak je možná zbytečné potvrzovat každý paket, protože než se udělají retransmise s nějakými pauzami, může klidně uplynout i těch 100 ms.

Tady bysme se potřebovali podívat na zdrojový kód obou stran a možná si to rozjet u sebe k pochopení, jak celá aplikace funguje. Asi bude potřeba se na to podívat detailněji. Proberu s kolegy váš zájem o konzultaci a ozvu se Vám do zítřka na email, může to tak být?

Dobrý den,

děkuji za odpověď. To potvrzení totiž obsahuje i další informace, které posíláme zpět - třeba stav baterie. Zdrojový kod mužu nachystat, to nebude problém. Dejte tedy prosím vědět ohledně konzultací.

Díky
Dalibor