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