Hlavní navigace

Bezdrátový přenos s IQRF: zasílání příkazů na nody

Ivona Spurná 15. 6. 2016

Fast Response Command je metoda, která slouží k zaslání příkazu z Koordinátoru hromadně na všechny nebo vybrané Nody. Výrazně se tím zkracuje čas potřebný k získání všech informací.

FRC – Fast Response Command

Pokud by byla data sbírána z Nodů jednotlivě, pak by čas potřebný na získání těchto informací byl výrazně vyšší než v případě metody FRC. Metodou FRC můžete získat ze všech Nodů v síti (až 239) po dvou bitech, z až 62 Nodů lze získat 1 bajt, a z až 30 Nodů můžete získat dvoubajtovou informaci. Zjednodušeně řečeno – cestou od Koordinátoru se na všechny dotčené Nody odešle požadavek na získávané informace (či se odešlou příkazy k vykonání), a cestou zpět ke Koordinátoru jsou požadované informace jednotlivými Nody přidávány do FRC zprávy na předem určené pozice ve zprávě.

Ve dvou bitech tak můžete získat stavovou informaci ze všech Nodů, a pokud je potřeba získat podrobnější údaje, lze následně daný Nod oslovit a informace si vyžádat.

Nastavení příkazu FRC

FRC je speciální periferie Koordinátoru, na kterou je odeslán příkaz a případně další data, která příkaz upřesní. Pokud tedy chcete využívat FRC, je třeba tuto periferii na Koordinátoru v konfiguraci povolit. ID periferie FRC je PNUM = 0×0D.

Následuje identifikace druhu příkazu. Na výběr je například PCMD = 0×00 – Send (odeslání příkazu na všechny Nody), PCMD = 0×02 – Send Selective (odeslání příkazu na vybrané Nody), PCMD = 0×01 – Extra Result (získání dodatečných výsledků příkazu FRC – celkový počet bajtů obou příkazů bude 64).

V části PDATA jsou obsažena data – ID příkazu FRC a následující uživatelská data.

Podrobnosti ohledně parametrů příkazu FRC najdete v dokumentaci.

Získání teploty ze všech Nodů

Z terminálu IQRF IDE zašlete příkaz FRC na Koordinátor (PNUM = 0×0D, PCMD = 0×00 – Send – zaslání požadavku na všechny Nody). Hodnota 0×80 v parametru PDATA specifikuje ID předdefinovaného příkazu FRC pro teplotu, následují dva bajty 00.00 nespecifikovaných uživatelských dat (minimálně 2 bajty jsou povinné).

V této ukázce vrátily všechny Nody v síti (zde Nod s adresou 1 a 2) teplotu (27°C a 26°C).

Získání teploty z vybraných Nodů

Z terminálu IQRF IDE zašlete příkaz FRC na Koordinátor (PNUM = 0×0D, PCMD = 0×02 – Send Selective – oslovení pouze vybraných Nodů). Po ID příkazu FRC pro teplotu (0×80) následuje v dalších 30 bajtech specifikace Nodů, kterých se požadavek týká – bitová mapa. Bit 0 prvního bajtu se vynechává (pozice pro Koordinátor), bit 1 prvního bajtu značí Nod s adresou 1, bit 2 prvního bajtu značí Nod s adresou 2 atd., až bit 7 v třicátém bajtu značí Nod s adresou 239. Pokud tedy daný Nod chcete oslovit, vložte na jeho pozici jedničku, v opačném případě nulu. Za specifikací bitové mapy následují uživatelská data (2 – 25 bajtů).

Pokud tedy chceme získat teplotu z nodu 2 a 4, zadáme na pozici 2. a 4. bitu v prvním bajtu jedničky (0001 0100 = 20, což odpovídá 0×14).

PDATA tedy obsahují:

80.14.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.
  • 0×80 – ID příkazu FRC pro získání teploty

  • 14.00. … .00 – bitová mapa Nodů

  • 00.00 – povinné min. dva bajty uživatelských dat

V tomto příkladu vidíme, že Nody vrátily teplotu 28°C a 27°C. Návratové hodnoty oslovených Nodů jsou řazeny v PDATA bez vynechávání hned za sebou, čímž lze získat jednobajtové výstupy z až 62 Nodů bez ohledu na jejich logické adresy.

Další možnosti FRC

Příkaz FRC samozřejmě neslouží pouze pro zjišťování teploty z transceiverů. Lze jím rozeslat jakýkoli příkaz, na který Nody buď umí rovnou samy reagovat nebo je to pomocí Custom DPA Handleru naučíte. Můžete si ve svém handleru nadefinovat vlastní uživatelskou periferii, která bude reagovat na vámi definované příkazy, a to způsobem, který potřebujete.

V následujících dvou příkladech jsou uvedena data pro zapnutí/vypnutí LED na vybraných Nodech.

Zapnutí červené LED na Nodu s adresou 2 (bit 2 v prvním bajtu – 22=4)

02.04.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.05.06.01.FF.FF.

Na začátku parametru PDATA je uvedena hodnota 0×02 (ID příkazu FRC), což znamená, že v uživatelských datech na konci následuje specifický příkaz. V tomto případě příkaz obsahuje hodnoty 05.06.01.FF.FF, kde hodnota 05 znamená délku těchto přídavných uživatelských dat (v bajtech), 06 znamená číslo periferie (červená LED), 01 znamená zapnutí této LED, a dodatečné hodnoty FF.FF mohou zajistit filtrování podle HWPID (zde nedochází k žádnému filtrování).

Vypnutí červené LED na nodu s adresou 4 (bit 4 – 24=16, což odpovídá 0×10)

02.10.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.05.06.00.FF.FF.

V příkazu 05.06.00.FF.FF znamená hodnota 00 vypnutí červené LED. Vše ostatní je stejné jako v předchozí ukázce.

V dalších dílech můžete očekávat přiblížení IQRF SDK, což je open source software development package pro zařízení používající IQRF. IQRF SDK umožňuje snadný vývoj bezdrátových síťových aplikací, které pro přenos využívají technologii IQRF, a to v jazyce C nebo Java.

Našli jste v článku chybu?
Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?