Îmbunătățirea TypeScript de la Microsoft vă poate ajuta să dezvoltați sisteme complexe alimentate de Internetul lucrurilor.

DeviceScript este o inovație de ultimă oră de la Microsoft Research. Acesta extinde capacitățile TypeScript pentru a găzdui dispozitive Internet of Things (IoT) la scară mică, cu resurse limitate.

Scopul său principal este de a vă permite să scrieți cod în TypeScript și să-l compilați în bytecode personalizat, optimizat pentru implementare în medii cu resurse limitate.

Ieșire din consolă în DeviceScript

Microsoft DeviceScript oferă o consolă ușor de utilizat. Acceptă transmiterea mesajelor și înregistrarea datelor senzorului, dar servește și ca a instrument valoros pentru verificarea erorilor.

O serie de funcții vă stă la dispoziție pentru a înregistra mesaje cu diferite niveluri de jurnal:

consolă.debug("depanare")
consolă.Buturuga("Buturuga")
consolă.a avertiza("a avertiza")
consolă.eroare("eroare")

Ieșirea consolei este ușor vizibilă în fereastra terminalului DeviceScript. Acesta poate ajuta la furnizarea de informații valoroase asupra rulării codului dvs. și poate ajuta procesul de depanare.

instagram viewer

În plus, DeviceScript simplifică înregistrarea datelor senzorului prin furnizarea console.date funcția, care adaugă automat un marcaj de timp la datele înregistrate.

Luați în considerare următorul exemplu:

const temperatura = 20;
const umiditate = 60;
consolă.data({ temperatura, umiditatea });

Pentru a accesa datele înregistrate, puteți naviga la DeviceScript - Ieșire de date panoul în Visual Studio Code sau descărcați-l din meniul de vizualizare.

Formatare puternică a șirurilor

Când utilizați console.log() funcția în DeviceScript, aveți multe opțiuni de formatare a șirurilor pentru o ieșire îmbunătățită. Luați în considerare următoarele exemple ilustrative:

lăsa x = 0;
lăsa y = 4;
consolă.Buturuga(„Salutări, lume”);
consolă.Buturuga(„Valoarea lui X este”, X, „în timp ce Y este”, y);
consolă.Buturuga(„X=", X, „Y=", y);
consolă.Buturuga(`X=${x} Y=${y}`);
consolă.Buturuga(„X=" + x + " Y=" + y);

Compilatorul DeviceScript inserează automat spații, rezultând o ieșire mai lizibilă. De exemplu, al doilea și al treilea exemple vor produce Valoarea lui X este 7, în timp ce Y este 12 și X=7 Y=12, respectiv.

Când scrieți în registre, puteți utiliza și literale de concatenare și șablon. Luați în considerare următorul fragment de cod:

const ecran = nou ds. CharacterScreen();
lăsa x = 7;
screen.message.write(„Valoarea lui X este” + x);
screen.message.write(`X este egal cu ${x}`);

Folosind concatenarea sau literalele șablon, puteți construi fără efort șiruri dinamice pentru a răspunde unei game variate de cerințe.

În plus, DeviceScript oferă ds.format() funcție pentru formatarea avansată a șirurilor. Puteți utiliza această funcție împreună cu console.log() sau la configurarea registrelor de șiruri.

Specificați substituenți pentru argumente folosind formatul {0}, {1}, {2}, si asa mai departe. De asemenea, puteți specifica precizia adăugând o a doua cifră.

Observați următorul exemplu:

const ecran = nou ds. CharacterScreen();
lăsa x = 7;
lăsa y = 12;
consolă.log (ds.format(„X este {0} și Y este {1}”, X y));
consolă.log (ds.format(„X = {04}”, X));
screen.message.write (ds.format(„X este aproximativ {0}”, X));

Rețineți că specificarea preciziei cu o a doua cifră poate să nu dea rezultate impecabile în toate scenariile.

Clienți: Permiterea interacțiunii cu senzori și actuatori

Ecosistemul DeviceScript abstractizează interacțiunea cu senzorii, actuatorii și alte componente hardware prin serviciile Jacdac.

Acest cadru tratează senzorii ca pe niște servere, în timp ce scripturile dvs. conectează clienții la aceste servere pentru a facilita interacțiunea. Pentru a ilustra acest concept, luați în considerare scenariul unui controler al sistemului de încălzire a casei.

Sistemul de încălzire cuprinde un releu care reglează funcționarea cuptorului, un senzor de temperatură și un encoder rotativ pentru reglarea temperaturii dorite. În DeviceScript, definiți clienții, denumiți și roluri, pentru fiecare serviciu necesar.

Aruncă o privire la următorul fragment de cod:

import { Temperatură, releu } din„@devicescript/core”;
const termometru = nou Temperatura();
const termometru2 = nou Temperatura();
const releu = nou Releu();

Prin instanțierea clienților de servicii necesari, cum ar fi termometru, termometru 2, și releu, stabiliți o comunicare fără întreruperi cu serverele corespunzătoare.

Servere hardware DeviceScript

Pentru a interacționa cu orice componentă hardware din DeviceScript, folosiți clienți de servicii. Cu toate acestea, pentru programarea eficientă a acestor componente hardware, este imperativ să inițializați serverele de servicii pe hardware-ul de bază.

DeviceScript oferă o gamă largă de servere în cadrul @devicescript/servere modul, simplificând astfel acest proces.

De exemplu, cel butonul de start funcția vă permite să implementați un server de butoane pe un anumit pin și să obțineți clientul corespunzător. Observați următorul exemplu:

import { gpio } din„@devicescript/core”;
import { butonul de start } din„@devicescript/servere”;
const butonulA = startButton({ pin: gpio(2),});

Încorporând acest fragment de cod în scriptul dvs., obțineți capacitatea de a interacționa cu pinul 2 (identificatorul specific hardware-ului) prin intermediul butonul A client. Puteți apoi să vă abonați la evenimente precum apăsările de butoane și să executați acțiuni specifice în cadrul aplicației dvs. IoT.

Împuternicirea dezvoltării IoT cu DeviceScript

DeviceScript vă permite să utilizați TypeScript pentru dispozitive IoT mici, optimizând codul pentru medii constrânse. Ieșirea sa din consolă simplifică înregistrarea și vizualizarea datelor. Abstragând interacțiunea hardware prin serviciile Jacdec, eficientizează comunicarea cu senzorii și actuatorii.

Integrat cu Visual Studio Code, DeviceScript oferă un mediu cuprinzător pentru dezvoltare, făcându-l un instrument valoros pentru soluții IoT eficiente și sigure. Cu DeviceScript și Visual Studio Code, puteți construi cu încredere soluții IoT care nu sunt doar eficiente, ci și mențin un nivel ridicat de securitate pe tot parcursul procesului de dezvoltare.