Vylepšení TypeScript od Microsoftu vám může pomoci vyvíjet složité systémy založené na internetu věcí.

DeviceScript je špičková inovace od společnosti Microsoft Research. Rozšiřuje možnosti TypeScriptu tak, aby vyhovovaly malým zařízením internetu věcí (IoT) s omezenými zdroji.

Jeho hlavním cílem je umožnit vám psát kód v TypeScript a kompilovat jej do vlastního bajtkódu, optimalizovaného pro nasazení v prostředích s omezenými zdroji.

Výstup konzoly v DeviceScript

Microsoft DeviceScript nabízí uživatelsky přívětivou konzoli. Podporuje výstup zpráv a protokolování dat senzoru, ale také slouží jako a cenný nástroj pro kontrolu chyb.

Pro protokolování zpráv s různými úrovněmi protokolu máte k dispozici řadu funkcí:

řídicí panel.ladit("ladit")
řídicí panel.log("log")
řídicí panel.varovat("varovat")
řídicí panel.chyba("chyba")

Výstup konzoly je snadno viditelný v okně terminálu DeviceScript. Může vám pomoci poskytnout cenné poznatky o běhu vašeho kódu a napomoci procesu ladění.

Kromě toho DeviceScript zjednodušuje protokolování dat senzoru tím, že poskytuje

instagram viewer
konzole.data funkce, která automaticky připojí časové razítko k zaznamenaným datům.

Zvažte následující příklad:

konst teplota = 20;
konst vlhkost = 60;
řídicí panel.data({ teplota, vlhkost });

Chcete-li získat přístup k zaznamenaným datům, můžete přejít na DeviceScript - Výstup dat podokno v kódu Visual Studio nebo si jej stáhněte z nabídky zobrazení.

Výkonné formátování řetězců

Při použití console.log() funkce v DeviceScript, máte mnoho možností formátování řetězců pro vylepšený výstup. Zvažte následující ilustrativní příklady:

nechat x = 0;
nechat y = 4;
řídicí panel.log("Zdravím, světe");
řídicí panel.log("Hodnota X je", X, "zatímco Y je", y);
řídicí panel.log("X=", X, "Y=", y);
řídicí panel.log(`X=${x} Y=${y}`);
řídicí panel.log("X=" + x + "Y=" + y);

Kompilátor DeviceScript automaticky vkládá mezery, což má za následek čitelnější výstup. Vytvoří se například druhý a třetí příklad Hodnota X je 7, zatímco Y je 12 a X=7 Y=12, resp.

Při zápisu do registrů můžete využít i zřetězení a šablonové literály. Zvažte následující fragment kódu:

konst obrazovka = Nový ds. CharacterScreen();
nechat x = 7;
screen.message.write("Hodnota X je" + x);
screen.message.write(`X se rovná ${x}`);

Pomocí zřetězení nebo šablonových literálů můžete bez námahy vytvářet dynamické řetězce, které uspokojí různorodou škálu požadavků.

Kromě toho DeviceScript nabízí ds.format() funkce pro pokročilé formátování řetězců. Tuto funkci můžete použít ve spojení s console.log() nebo při konfiguraci registrů řetězců.

Zadejte zástupné symboly pro argumenty pomocí formátu {0}, {1}, {2}, a tak dále. Můžete také určit přesnost připojením druhé číslice.

Podívejte se na následující příklad:

konst obrazovka = Nový ds. CharacterScreen();
nechat x = 7;
nechat y = 12;
řídicí panel.log (ds.format("X je {0} a Y je {1}", x, y));
řídicí panel.log (ds.format("X = {04}", X));
screen.message.write (ds.format("X je přibližně {0}", X));

Mějte na paměti, že zadání přesnosti pomocí druhé číslice nemusí ve všech scénářích přinést bezchybné výsledky.

Klienti: Povolení interakce se senzory a akčními členy

Ekosystém DeviceScript abstrahuje interakci se senzory, akčními členy a dalšími hardwarovými komponentami prostřednictvím služeb Jacdac.

Tento rámec zachází se senzory jako se servery, zatímco vaše skripty připojují klienty k těmto serverům a usnadňují interakci. Pro ilustraci tohoto konceptu zvažte scénář regulátoru domácího topného systému.

Topný systém obsahuje relé, které reguluje provoz pece, teplotní čidlo a rotační enkodér pro nastavení požadované teploty. V DeviceScript definujete klienty, označované také jako role, pro každou požadovanou službu.

Podívejte se na následující fragment kódu:

import { Teplota, relé } z"@devicescript/core";
konst teploměr = Nový Teplota();
konst teploměr2 = Nový Teplota();
konst relé = Nový Relé();

Instancí potřebných klientů služby, jako je např teploměr, teploměr 2, a relé, navážete bezproblémovou komunikaci s odpovídajícími servery.

Hardwarové servery DeviceScript

Chcete-li komunikovat s jakoukoli hardwarovou komponentou v DeviceScript, zaměstnáte servisní klienty. Pro efektivní programování těchto hardwarových komponent je však nezbytné inicializovat servisní servery na základním hardwaru.

DeviceScript nabízí širokou škálu serverů v rámci @devicescript/servers modul, čímž se tento proces zefektivní.

Například, tlačítko Start Funkce umožňuje nasadit tlačítkový server na konkrétním pinu a získat odpovídajícího klienta. Podívejte se na následující příklad:

import { gpio } z"@devicescript/core";
import { tlačítko Start } z"@devicescript/servers";
konst buttonA = startButton({ kolík: gpio(2),});

Začleněním tohoto fragmentu kódu do skriptu získáte možnost interakce s pinem 2 (hardwarově specifickým identifikátorem) prostřednictvím tlačítkoA klienta. Poté se můžete přihlásit k odběru událostí, jako jsou stisknutí tlačítek, a provádět konkrétní akce ve vaší aplikaci IoT.

Posílení vývoje IoT pomocí DeviceScript

DeviceScript vám umožňuje využít TypeScript pro malá zařízení IoT a optimalizovat kód pro omezená prostředí. Jeho konzolový výstup zjednodušuje protokolování a vizualizaci dat. Abstrahováním interakce hardwaru prostřednictvím služeb Jacdec zjednodušuje komunikaci se senzory a akčními členy.

DeviceScript, integrovaný s Visual Studio Code, nabízí komplexní prostředí pro vývoj, díky čemuž je cenným nástrojem pro efektivní a bezpečná řešení IoT. Pomocí DeviceScript a Visual Studio Code můžete s jistotou budovat řešení IoT, která jsou nejen efektivní, ale také udržují vysokou úroveň zabezpečení během celého vývojového procesu.