⚙️⚙️⚙️ Pojďme napsat nějaký slušný kód

Jak jsem zmiňoval posledně, povedlo se mi rozchodit oba RFM69 moduly, ale je to jen začátek:

1️⃣ první modul se stále choval jako vysílač

zatímco

2️⃣ druhý modul se stále choval jako přijímač

Což není obecná a typická aplilace, že? Nehodlám vyvíjet domovní zvonek. Já hodlám vyvinout plnohodnotný packetový subsystém poskytující spolehlivé spojení I v prostředí s mnoho vysílači.

Nalezl jsem oblíbenou a známou knihovnu RadioHead pro RFM69 a další moduly. Tato knihovna je skvělá a hodně mi pomohla.

RadioHead knihovna umí:

➕ spolehlivou datagramovou komunikaci s ACK pakety pro potvrzení příjmu a přeposíláním, pokud nepřijde potvrzení do určité doby

➖ velký problém je to, že knihovna je napsána jako _blokující_

To je skvělé a postačující pro všemožné hračky a příklady jako posílání údajů o teplotě jednou za čas ze senzoru do nějakého serveru. Ovšem v přístroji, který je ovládán člověkem je toto blokování nepřípustné.

Tedy jsem nucen napsat knihovnu vlastní podle mých potřeb. Nemohu si dovolit do zařízení s UX vložit nedeterministické čekání.

Náhled na komunikační modul
Náhled na komunikační modul
RadioHead je blokující
Štítky: