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í).

widgety

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?
Vitalia.cz: Dostal malý pivovar ze Slovenska do Tesca

Dostal malý pivovar ze Slovenska do Tesca

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

120na80.cz: Hrbatá prsa aneb mýty o implantátech

Hrbatá prsa aneb mýty o implantátech

Podnikatel.cz: Znáte už 5 novinek k #EET

Znáte už 5 novinek k #EET

Vitalia.cz: Inspekce našla nelegální sklad v SAPĚ. Zase

Inspekce našla nelegální sklad v SAPĚ. Zase

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Vitalia.cz: Jsou vegani a vyrábějí nemléko

Jsou vegani a vyrábějí nemléko

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

DigiZone.cz: Funbox 4K v DVB-T2 má ostrý provoz

Funbox 4K v DVB-T2 má ostrý provoz

DigiZone.cz: Test: brýle pro virtuální realitu Exos Urban

Test: brýle pro virtuální realitu Exos Urban

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

DigiZone.cz: Mordparta: trochu podchlazený 87. revír

Mordparta: trochu podchlazený 87. revír

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích