Microsoft TypeScript uzlabojums var palīdzēt izstrādāt sarežģītas sistēmas, kuras darbina lietu internets.
DeviceScript ir progresīva inovācija no Microsoft Research. Tas paplašina TypeScript iespējas, lai pielāgotos maza mēroga lietiskā interneta (IoT) ierīcēm ar ierobežotiem resursiem.
Tās galvenais mērķis ir ļaut jums rakstīt kodu TypeScript un apkopot to pielāgotā baitkodā, kas ir optimizēts izvietošanai vidēs, kurās ir ierobežoti resursi.
Konsoles izvade programmā DeviceScript
Microsoft DeviceScript piedāvā lietotājam draudzīgu konsoli. Tā atbalsta ziņojumu izvadi un sensoru datu reģistrēšanu, bet kalpo arī kā a vērtīgs rīks kļūdu pārbaudei.
Jūsu rīcībā ir vairākas funkcijas, lai reģistrētu ziņojumus ar dažādiem žurnāla līmeņiem:
konsole.debug("atkļūdot")
konsole.log("baļķis")
konsole.warn("brīdināt")
konsole.error("kļūda")
Konsoles izvade ir viegli redzama DeviceScript termināļa logā. Tas var palīdzēt sniegt vērtīgu ieskatu par jūsu koda darbību un palīdzēt atkļūdošanas procesā.
Turklāt DeviceScript vienkāršo sensoru datu reģistrēšanu, nodrošinot
konsole.dati funkcija, kas reģistrētajiem datiem automātiski pievieno laikspiedolu.Apsveriet šādu piemēru:
konst temperatūra = 20;
konst mitrums = 60;
konsole.data({temperatūra, mitrums});
Lai piekļūtu reģistrētajiem datiem, varat pāriet uz DeviceScript — datu izvade rūtī Visual Studio Code vai lejupielādējiet to no skata izvēlnes.
Jaudīga virkņu formatēšana
Lietojot console.log() funkcija DeviceScript, jums ir daudzas virkņu formatēšanas iespējas uzlabotai izvadei. Apsveriet šādus ilustratīvus piemērus:
ļaut x = 0;
ļaut y = 4;
konsole.log("Sveicināta, pasaule");
konsole.log("X vērtība ir", x, "kamēr Y ir", y);
konsole.log("X=", x, "Y=", y);
konsole.log(`X=${x} Y=${y}`);
konsole.log("X=" + x + "Y=" + y);
DeviceScript kompilators automātiski ievieto atstarpes, tādējādi nodrošinot labāk salasāmu izvadi. Piemēram, tiks izveidots otrais un trešais piemērs X vērtība ir 7, bet Y ir 12 un X=7 Y=12, attiecīgi.
Rakstot uz reģistriem, var izmantot arī konkatenācijas un veidņu literāļus. Apsveriet šādu koda fragmentu:
konst ekrāns = jauns ds. CharacterScreen();
ļaut x = 7;
screen.message.write("X vērtība ir" + x);
screen.message.write(`X ir vienāds ar ${x}`);
Izmantojot sasaistes vai veidņu literāļus, varat bez piepūles izveidot dinamiskas virknes, lai apmierinātu dažādas prasības.
Turklāt DeviceScript piedāvā ds.format() funkcija uzlabotai virkņu formatēšanai. Šo funkciju varat izmantot kopā ar console.log() vai konfigurējot virkņu reģistrus.
Norādiet vietturus argumentiem, izmantojot formātu {0}, {1}, {2}, un tā tālāk. Varat arī norādīt precizitāti, pievienojot otru ciparu.
Ievērojiet šādu piemēru:
konst ekrāns = jauns ds. CharacterScreen();
ļaut x = 7;
ļaut y = 12;
konsole.log (ds.format("X ir {0} un Y ir {1}", x, y));
konsole.log (ds.format("X = {04}", x));
screen.message.write (ds.format("X ir aptuveni {0}", x));
Ņemiet vērā, ka precizitātes norādīšana ar otro ciparu var nesniegt nevainojamus rezultātus visos scenārijos.
Klienti: Mijiedarbības ar sensoriem un izpildmehānismiem iespējošana
DeviceScript ekosistēma abstrahē mijiedarbību ar sensoriem, izpildmehānismiem un citiem aparatūras komponentiem, izmantojot Jacdac pakalpojumus.
Šī sistēma uztver sensorus kā serverus, savukārt jūsu skripti savieno klientus ar šiem serveriem, lai atvieglotu mijiedarbību. Lai ilustrētu šo koncepciju, apsveriet mājas apkures sistēmas kontroliera scenāriju.
Apkures sistēma ietver releju, kas regulē krāsns darbību, temperatūras sensoru un rotācijas devēju vēlamās temperatūras regulēšanai. Programmā DeviceScript jūs definējat klientus, ko dēvē arī par lomām, katram nepieciešamajam pakalpojumam.
Apskatiet šo koda fragmentu:
imports { Temperatūra, relejs } no"@devicescript/core";
konst termometrs = jauns Temperatūra();
konst termometrs2 = jauns Temperatūra();
konst relejs = jauns Relejs();
Momentējot nepieciešamos servisa klientus, piem termometrs, termometrs 2, un relejs, jūs izveidojat netraucētu saziņu ar atbilstošajiem serveriem.
DeviceScript aparatūras serveri
Lai mijiedarbotos ar jebkuru DeviceScript aparatūras komponentu, jūs izmantojat pakalpojumu klientus. Tomēr, lai efektīvi programmētu šos aparatūras komponentus, ir obligāti jāinicializē servisa serveri pamatā esošajā aparatūrā.
DeviceScript piedāvā plašu serveru klāstu @devicescript/serveri moduli, tādējādi racionalizējot šo procesu.
Piemēram, sākuma poga funkcija ļauj izvietot pogu serveri uz noteiktas tapas un iegūt atbilstošo klientu. Ievērojiet šādu piemēru:
imports { gpio } no"@devicescript/core";
imports { startButton } no"@devicescript/servers";
konst buttonA = startButton({ pin: gpio(2),});
Iekļaujot šo koda fragmentu savā skriptā, jūs iegūsit iespēju mijiedarboties ar tapu 2 (aparatūrai raksturīgo identifikatoru), izmantojot pogaA klients. Pēc tam varat abonēt pasākumus, piemēram, pogu nospiešanu un veikt noteiktas darbības savā IoT lietojumprogrammā.
IoT izstrādes iespējas, izmantojot DeviceScript
DeviceScript ļauj izmantot TypeScript mazām IoT ierīcēm, optimizējot kodu ierobežotām vidēm. Tās konsoles izvade vienkāršo reģistrēšanu un datu vizualizāciju. Abstrahējot aparatūras mijiedarbību, izmantojot Jacdec pakalpojumus, tas racionalizē saziņu ar sensoriem un izpildmehānismiem.
Integrēts ar Visual Studio Code, DeviceScript piedāvā visaptverošu vidi izstrādei, padarot to par vērtīgu rīku efektīviem un drošiem IoT risinājumiem. Izmantojot DeviceScript un Visual Studio Code, varat droši veidot IoT risinājumus, kas ir ne tikai efektīvi, bet arī uztur augstu drošības līmeni visā izstrādes procesā.