Microsofts TypeScript-forbedring kan hjælpe dig med at udvikle komplekse systemer drevet af tingenes internet.
DeviceScript er en banebrydende innovation fra Microsoft Research. Det udvider mulighederne for TypeScript til at rumme småskala Internet of Things (IoT) enheder med begrænsede ressourcer.
Dens hovedformål er at sætte dig i stand til at skrive kode i TypeScript og kompilere den til brugerdefineret bytekode, optimeret til implementering i ressourcebegrænsede miljøer.
Konsoloutput i DeviceScript
Microsoft DeviceScript tilbyder en brugervenlig konsol. Den understøtter meddelelsesoutput og logning af sensordata, men fungerer også som en værdifuldt værktøj til fejlkontrol.
En række funktioner er til din rådighed for at logge beskeder med forskellige logniveauer:
konsol.fejlfinde("fejlfinde")
konsol.log("log")
konsol.advare("advare")
konsol.fejl("fejl")
Konsoloutputtet er let synligt i DeviceScript-terminalvinduet. Det kan hjælpe med at give værdifuld indsigt i driften af din kode og hjælpe processen med fejlretning.
Desuden forenkler DeviceScript logningen af sensordata ved at levere konsol.data funktion, som automatisk tilføjer et tidsstempel til de loggede data.
Overvej følgende eksempel:
konst temperatur = 20;
konst fugtighed = 60;
konsol.data({ temperatur, fugtighed });
For at få adgang til de loggede data kan du navigere til DeviceScript - Dataoutput ruden i Visual Studio Code eller download den fra visningsmenuen.
Kraftig strengformatering
Ved brug af console.log() funktion i DeviceScript, du har mange muligheder for at formatere strenge for forbedret output. Overvej følgende illustrative eksempler:
lade x = 0;
lade y = 4;
konsol.log("Hilsen verden");
konsol.log("Værdien af X er", x, "mens Y er"y);
konsol.log("X=", x, "Y="y);
konsol.log(`X=${x} Y=${y}`);
konsol.log("X=" + x + "Y=" +y);
DeviceScript-kompileren indsætter automatisk mellemrum, hvilket resulterer i mere læseligt output. For eksempel vil det andet og tredje eksempel frembringe Værdien af X er 7, mens Y er 12 og X=7 Y=12, henholdsvis.
Når du skriver til registre, kan du også bruge sammenkædning og skabelon bogstaver. Overvej følgende kodestykke:
konst skærm = ny ds. CharacterScreen();
lade x = 7;
screen.message.write("Værdien af X er" + x);
screen.message.write(`X er lig med ${x}`);
Ved at bruge sammenkædning eller skabelonliteral kan du uden besvær konstruere dynamiske strenge for at imødekomme en bred vifte af krav.
Desuden tilbyder DeviceScript ds.format() funktion til avanceret strengformatering. Du kan bruge denne funktion sammen med console.log() eller ved konfiguration af strengregistre.
Angiv pladsholdere for argumenter ved hjælp af formatet {0}, {1}, {2}, og så videre. Du kan også angive præcision ved at tilføje et andet ciffer.
Bemærk følgende eksempel:
konst skærm = ny ds. CharacterScreen();
lade x = 7;
lade y = 12;
konsol.log (ds.format("X er {0} og Y er {1}", x, y));
konsol.log (ds.format("X = {04}", x));
screen.message.write (ds.format("X er ca. {0}", x));
Husk, at angivelse af præcision med et andet ciffer muligvis ikke giver fejlfrie resultater i alle scenarier.
Kunder: Muliggør interaktion med sensorer og aktuatorer
DeviceScript-økosystemet abstraherer interaktion med sensorer, aktuatorer og andre hardwarekomponenter gennem Jacdac-tjenester.
Denne ramme behandler sensorer som servere, mens dine scripts forbinder klienter med disse servere for at lette interaktion. For at illustrere dette koncept skal du overveje scenariet for en controller til et varmesystem til hjemmet.
Varmesystemet omfatter et relæ, der regulerer driften af ovnen, en temperaturføler og en roterende encoder til justering af den ønskede temperatur. I DeviceScript definerer du klienter, også kaldet roller, for hver påkrævet service.
Tag et kig på følgende kodestykke:
importere { Temperatur, relæ } fra"@devicescript/core";
konst termometer = ny Temperatur();
konst termometer2 = ny Temperatur();
konst relæ = ny Relæ();
Ved at instansiere de nødvendige serviceklienter, som f.eks termometer, termometer 2, og relæ, etablerer du problemfri kommunikation med de tilsvarende servere.
DeviceScript hardwareservere
For at interagere med enhver hardwarekomponent i DeviceScript bruger du serviceklienter. For effektiv programmering af disse hardwarekomponenter er det dog bydende nødvendigt at initialisere serviceservere på den underliggende hardware.
DeviceScript tilbyder et omfattende udvalg af servere inden for @devicescript/servere modul og derved strømline denne proces.
For eksempel startknap funktionen giver dig mulighed for at installere en knapserver på en specifik pin og få den tilsvarende klient. Bemærk følgende eksempel:
importere { gpio } fra"@devicescript/core";
importere { startknap } fra"@enhedsscript/servere";
konst knapA = startknap({ pin: gpio(2),});
Ved at inkorporere dette kodestykke i dit script får du mulighed for at interagere med pin 2 (den hardwarespecifikke identifikator) gennem knap A klient. Du kan derefter abonnere på begivenheder såsom knaptryk og udføre specifikke handlinger i din IoT-applikation.
Styrker IoT-udvikling med DeviceScript
DeviceScript giver dig mulighed for at udnytte TypeScript til små IoT-enheder, hvilket optimerer kode til begrænsede miljøer. Dens konsoludgang forenkler logning og datavisualisering. Ved at abstrahere hardwareinteraktion gennem Jacdec-tjenester strømliner det kommunikationen med sensorer og aktuatorer.
Integreret med Visual Studio Code tilbyder DeviceScript et omfattende miljø til udvikling, hvilket gør det til et værdifuldt værktøj til effektive og sikre IoT-løsninger. Med DeviceScript og Visual Studio Code kan du trygt bygge IoT-løsninger, der ikke kun er effektive, men også opretholder et højt sikkerhedsniveau gennem hele udviklingsprocessen.