A Microsoft TypeScript továbbfejlesztése segíthet komplex rendszerek fejlesztésében, amelyeket a tárgyak internete vezérel.

A DeviceScript a Microsoft Research legmodernebb innovációja. Kibővíti a TypeScript képességeit a kisméretű, korlátozott erőforrásokkal rendelkező tárgyak internete (IoT) eszközökhöz.

Fő célja, hogy lehetővé tegye a kód írását TypeScriptben, és egyéni bájtkódba való fordítását, amely optimalizált erőforrás-korlátos környezetekben történő telepítésre.

Konzolkimenet a DeviceScriptben

Microsoft DeviceScript felhasználóbarát konzolt kínál. Támogatja az üzenetkimenetet és az érzékelőadatok naplózását, de egyben a értékes hibaellenőrző eszköz.

Számos funkció áll az Ön rendelkezésére az üzenetek naplózásához különböző naplózási szintekkel:

konzol.debug("debug")
konzol.log("napló")
konzol.figyelmeztet("figyelmeztet")
konzol.hiba("hiba")

A konzol kimenete jól látható a DeviceScript terminál ablakában. Segíthet értékes betekintést nyújtani a kód futtatásába, és segítheti a hibakeresési folyamatot.

instagram viewer

Ezenkívül a DeviceScript leegyszerűsíti az érzékelőadatok naplózását azáltal, hogy biztosítja a konzol.adatok funkció, amely automatikusan időbélyeget fűz a naplózott adatokhoz.

Tekintsük a következő példát:

const hőmérséklet = 20;
const páratartalom = 60;
konzol.data({ hőmérséklet, páratartalom });

A naplózott adatok eléréséhez navigálhat a DeviceScript – Adatkimenet ablaktáblát a Visual Studio Code programban, vagy töltse le a nézet menüből.

Erőteljes karakterlánc formázás

Amikor a console.log() funkciója van a DeviceScriptben számos lehetőség a karakterláncok formázására a fokozott kimenet érdekében. Tekintsük a következő szemléltető példákat:

hagyja x = 0;
hagyja y = 4;
konzol.log("Üdv, világ");
konzol.log("X értéke", x, "míg Y van", y);
konzol.log("X=", x, "Y=", y);
konzol.log(`X=${x} Y=${y}`);
konzol.log("X=" + x + "Y=" + y);

A DeviceScript fordító automatikusan szóközöket szúr be, így olvashatóbb kimenetet eredményez. Például a második és harmadik példa eredménye lesz X értéke 7, míg Y értéke 12 és X=7 Y=12, ill.

A regiszterekbe íráskor használhatunk összefűzést és sablonliterálokat is. Vegye figyelembe a következő kódrészletet:

const képernyő = új ds. CharacterScreen();
hagyja x = 7;
screen.message.write("X értéke" + x);
screen.message.write(`X egyenlő ${x}`);

Összefűzés vagy sablonliterálok használatával könnyedén hozhat létre dinamikus karakterláncokat, hogy megfeleljen a különféle követelményeknek.

Ezenkívül a DeviceScript kínálja a ds.format() funkció a speciális karakterlánc formázáshoz. Ezt a funkciót a következővel együtt használhatja console.log() vagy a karakterlánc-regiszterek konfigurálásakor.

Adjon meg helyőrzőket az argumentumokhoz a formátum használatával {0}, {1}, {2}, és így tovább. A pontosságot egy második számjegy hozzáadásával is megadhatja.

Figyelje meg a következő példát:

const képernyő = új ds. CharacterScreen();
hagyja x = 7;
hagyja y = 12;
konzol.log (ds.format("X értéke {0}, Y pedig {1}", x, y));
konzol.log (ds.format("X = {04}", x));
screen.message.write (ds.format("X körülbelül {0}", x));

Ne feledje, hogy a pontosság második számjeggyel történő megadása nem biztos, hogy minden esetben hoz hibátlan eredményt.

Ügyfelek: Az érzékelőkkel és működtetőkkel való interakció engedélyezése

A DeviceScript ökoszisztéma absztrahálja az érzékelőkkel, működtetőkkel és egyéb hardverelemekkel való interakciót a Jacdac szolgáltatásokon keresztül.

Ez a keretrendszer az érzékelőket szerverként kezeli, míg a szkriptek az ügyfeleket ezekhez a szerverekhez kapcsolják az interakció megkönnyítése érdekében. Ennek a koncepciónak a szemléltetéséhez vegye figyelembe egy otthoni fűtési rendszer vezérlőjének forgatókönyvét.

A fűtési rendszer tartalmaz egy relét, amely szabályozza a kemence működését, egy hőmérséklet-érzékelőt és egy forgó jeladót a kívánt hőmérséklet beállításához. A DeviceScriptben minden szükséges szolgáltatáshoz meghatározza az ügyfeleket, amelyeket szerepeknek is neveznek.

Vessen egy pillantást a következő kódrészletre:

import { Hőmérséklet, Relé } tól től"@devicescript/core";
const hőmérő = új Hőfok();
const hőmérő2 = új Hőfok();
const relé = új Relé();

A szükséges szolgáltatási ügyfelek példányosításával, mint pl hőmérő, hőmérő 2, és relé, zökkenőmentes kommunikációt létesít a megfelelő szerverekkel.

DeviceScript hardver szerverek

A DeviceScript bármely hardverkomponensével való interakcióhoz szolgáltatásklienseket kell alkalmazni. E hardverösszetevők hatékony programozásához azonban elengedhetetlen a szolgáltatáskiszolgálók inicializálása az alapul szolgáló hardveren.

A DeviceScript a szerverek széles skáláját kínálja @devicescript/servers modult, ezáltal egyszerűsítve ezt a folyamatot.

Például a Start gomb A funkció lehetővé teszi egy gombszerver telepítését egy adott PIN-kódon, és megszerezheti a megfelelő klienst. Figyelje meg a következő példát:

import { gpio } tól től"@devicescript/core";
import { Start gomb } tól től"@devicescript/servers";
const buttonA = startButton({ pin: gpio(2),});

Ha ezt a kódrészletet beépíti a szkriptbe, akkor lehetősége nyílik a 2-es tűvel (a hardverspecifikus azonosítóval) való interakcióra a gombA ügyfél. Ezután feliratkozhat olyan eseményekre, mint például a gombnyomások, és bizonyos műveleteket hajthat végre az IoT-alkalmazáson belül.

Az IoT-fejlesztés felhatalmazása a DeviceScript segítségével

A DeviceScript lehetővé teszi a TypeScript kihasználását kis IoT-eszközökhöz, és optimalizálja a kódot a korlátozott környezetekhez. Konzol kimenete leegyszerűsíti a naplózást és az adatok megjelenítését. A hardveres interakciók a Jacdec szolgáltatásokon keresztül történő elvonásával leegyszerűsíti a kommunikációt az érzékelőkkel és aktuátorokkal.

A Visual Studio Code-ba integrálva a DeviceScript átfogó fejlesztési környezetet kínál, így a hatékony és biztonságos IoT-megoldások értékes eszközévé válik. A DeviceScript és a Visual Studio Code segítségével magabiztosan építhet olyan IoT-megoldásokat, amelyek nemcsak hatékonyak, hanem magas szintű biztonságot is fenntartanak a teljes fejlesztési folyamat során.