Microsoftova izboljšava TypeScript vam lahko pomaga razviti kompleksne sisteme, ki jih poganja internet stvari.

DeviceScript je vrhunska inovacija podjetja Microsoft Research. Razširja zmožnosti TypeScript za prilagoditev majhnim napravam interneta stvari (IoT) z omejenimi viri.

Njegov glavni cilj je omogočiti pisanje kode v TypeScript in njeno prevajanje v bajtno kodo po meri, optimizirano za uvajanje v okoljih z omejenimi viri.

Konzolni izhod v DeviceScript

Microsoft DeviceScript ponuja uporabniku prijazno konzolo. Podpira izpisovanje sporočil in beleženje podatkov senzorjev, služi pa tudi kot a dragoceno orodje za preverjanje napak.

Za beleženje sporočil z različnimi nivoji dnevnika vam je na voljo vrsta funkcij:

konzola.debug("debug")
konzola.log("dnevnik")
konzola.opozori("opozoriti")
konzola.napaka("napaka")

Izhod konzole je zlahka viden v terminalskem oknu DeviceScript. Lahko pomaga zagotoviti dragocene vpoglede v delovanje vaše kode in pomaga pri procesu odpravljanja napak.

Poleg tega DeviceScript poenostavlja beleženje podatkov senzorjev z zagotavljanjem

instagram viewer
konzola.podatki funkcijo, ki zabeleženim podatkom samodejno doda časovni žig.

Razmislite o naslednjem primeru:

konst temperatura = 20;
konst vlaga = 60;
konzola.data({temperatura, vlažnost});

Za dostop do zabeleženih podatkov se lahko pomaknete do DeviceScript - Izhod podatkov podoknu v Visual Studio Code ali ga prenesite iz menija pogleda.

Zmogljivo oblikovanje nizov

Pri uporabi console.log() funkcijo v DeviceScriptu imate veliko možnosti za oblikovanje nizov za izboljšan rezultat. Razmislite o naslednjih ilustrativnih primerih:

pustiti x = 0;
pustiti y = 4;
konzola.log("Pozdravljeni, svet");
konzola.log("Vrednost X je", x, "medtem ko je Y", y);
konzola.log("X=", x, "Y=", y);
konzola.log(`X=${x} Y=${y}`);
konzola.log("X=" + x + " Y=" + y);

Prevajalnik DeviceScript samodejno vstavi presledke, zaradi česar je rezultat bolj berljiv. Na primer, drugi in tretji primer bosta proizvedla Vrednost X je 7, medtem ko je Y 12 in X=7 Y=12, oz.

Pri pisanju v registre lahko uporabite tudi literale veriženja in predloge. Razmislite o naslednjem delčku kode:

konst zaslon = novo ds. CharacterScreen();
pustiti x = 7;
screen.message.write("Vrednost X je " + x);
screen.message.write(`X je enako ${x}`);

Z uporabo veriženja ali literalov predloge lahko brez truda sestavite dinamične nize, ki ustrezajo različnim zahtevam.

Poleg tega DeviceScript ponuja ds.format() funkcija za napredno oblikovanje nizov. To funkcijo lahko uporabljate v povezavi z console.log() ali pri konfiguriranju registrov nizov.

Podajte ograde za argumente z uporabo oblike {0}, {1}, {2}, in tako naprej. Natančnost lahko določite tudi tako, da dodate drugo števko.

Upoštevajte naslednji primer:

konst zaslon = novo ds. CharacterScreen();
pustiti x = 7;
pustiti y = 12;
konzola.log (ds.format("X je {0} in Y je {1}", x, y));
konzola.log (ds.format("X = {04}", x));
screen.message.write (ds.format("X je približno {0}", x));

Upoštevajte, da določanje natančnosti z drugo števko morda ne bo prineslo brezhibnih rezultatov v vseh scenarijih.

Stranke: omogočanje interakcije s senzorji in aktuatorji

Ekosistem DeviceScript abstrahira interakcijo s senzorji, aktuatorji in drugimi komponentami strojne opreme prek storitev Jacdac.

To ogrodje obravnava senzorje kot strežnike, medtem ko vaši skripti povezujejo odjemalce s temi strežniki, da olajšajo interakcijo. Za ponazoritev tega koncepta razmislite o scenariju regulatorja hišnega ogrevalnega sistema.

Ogrevalni sistem obsega rele, ki uravnava delovanje peči, temperaturni senzor in rotacijski dajalnik za nastavitev želene temperature. V DeviceScriptu definirate odjemalce, imenovane tudi vloge, za vsako zahtevano storitev.

Oglejte si naslednji delček kode:

uvoz { Temperatura, Rele } od"@devicescript/core";
konst termometer = novo Temperatura();
konst termometer2 = novo Temperatura();
konst rele = novo Rele ();

Z instanciranjem potrebnih servisnih odjemalcev, kot je npr termometer, termometer 2, in rele, vzpostavite brezhibno komunikacijo z ustreznimi strežniki.

Strežniki strojne opreme DeviceScript

Za interakcijo s katero koli komponento strojne opreme v DeviceScriptu zaposlite storitvene odjemalce. Vendar pa je za učinkovito programiranje teh komponent strojne opreme nujno inicializirati storitvene strežnike na osnovni strojni opremi.

DeviceScript ponuja obsežen nabor strežnikov znotraj @devicescript/strežniki modul, s čimer se ta proces poenostavi.

Na primer, startButton vam omogoča, da namestite strežnik gumbov na določen pin in pridobite ustreznega odjemalca. Upoštevajte naslednji primer:

uvoz {gpio} od"@devicescript/core";
uvoz { startButton } od"@devicescript/strežniki";
konst buttonA = startButton({ zatič:gpio(2),});

Z vključitvijo tega odrezka kode v vaš skript pridobite možnost interakcije s pinom 2 (identifikator za strojno opremo) prek gumbA stranka. Nato se lahko naročite na dogodke, kot so pritiski gumbov, in izvedete določena dejanja v svoji aplikaciji IoT.

Opolnomočenje razvoja IoT z DeviceScript

DeviceScript vam omogoča, da izkoristite TypeScript za majhne naprave IoT in optimizirate kodo za omejena okolja. Njegov izhod na konzolo poenostavlja beleženje in vizualizacijo podatkov. Z abstrahiranjem interakcije strojne opreme prek storitev Jacdec poenostavi komunikacijo s senzorji in aktuatorji.

DeviceScript, integriran s kodo Visual Studio Code, ponuja celovito okolje za razvoj, zaradi česar je dragoceno orodje za učinkovite in varne rešitve IoT. Z DeviceScript in Visual Studio Code lahko samozavestno zgradite IoT rešitve, ki niso samo učinkovite, ampak tudi ohranjajo visoko raven varnosti skozi celoten razvojni proces.