Microsofts TypeScript-förbättring kan hjälpa dig att utveckla komplexa system som drivs av Internet of Things.
DeviceScript är en banbrytande innovation från Microsoft Research. Det utökar kapaciteten hos TypeScript för att rymma småskaliga Internet of Things (IoT)-enheter med begränsade resurser.
Dess huvudsakliga syfte är att göra det möjligt för dig att skriva kod i TypeScript och kompilera den till anpassad bytekod, optimerad för distribution i miljöer med begränsade resurser.
Konsolutdata i DeviceScript
Microsoft DeviceScript erbjuder en användarvänlig konsol. Den stöder meddelandeutmatning och loggning av sensordata men fungerar också som en värdefullt verktyg för felkontroll.
En rad funktioner står till ditt förfogande för att logga meddelanden med olika loggnivåer:
trösta.debug("felsöka")
trösta.logga("logga")
trösta.varna("varna")
trösta.fel("fel")
Konsolutdatan är lätt synlig i DeviceScript-terminalfönstret. Det kan hjälpa till att ge värdefulla insikter om hur din kod körs och hjälpa till med felsökningsprocessen.
Dessutom förenklar DeviceScript loggningen av sensordata genom att tillhandahålla console.data funktion, som automatiskt lägger till en tidsstämpel till den loggade datan.
Tänk på följande exempel:
konst temperatur = 20;
konst fuktighet = 60;
trösta.data({ temperatur, fuktighet });
För att komma åt loggade data kan du navigera till DeviceScript - Datautgång rutan i Visual Studio Code eller ladda ner den från vymenyn.
Kraftfull strängformatering
När du använder console.log() funktion i DeviceScript, du har många alternativ för att formatera strängar för förbättrad produktion. Betrakta följande illustrativa exempel:
låta x = 0;
låta y = 4;
trösta.logga("Hälsningar, värld");
trösta.logga("Värdet på X är", x, "medan Y är"y);
trösta.logga("X=", x, "Y="y);
trösta.logga(`X=${x} Y=${y}`);
trösta.logga("X=" + x + " Y=" +y);
DeviceScript-kompilatorn infogar automatiskt mellanslag, vilket resulterar i mer läsbar utdata. Till exempel kommer de andra och tredje exemplen att producera Värdet på X är 7 medan Y är 12 och X=7 Y=12, respektive.
När du skriver till register kan du också använda sammanlänkning och mallbokstav. Tänk på följande kodavsnitt:
konst skärm = ny ds. CharacterScreen();
låta x = 7;
screen.message.write("Värdet på X är" + x);
screen.message.write(`X är lika med ${x}`);
Med hjälp av sammanlänkning eller bokstavsmallar kan du enkelt konstruera dynamiska strängar för att tillgodose en mängd olika krav.
Dessutom erbjuder DeviceScript ds.format() funktion för avancerad strängformatering. Du kan använda den här funktionen tillsammans med console.log() eller när du konfigurerar strängregister.
Ange platshållare för argument med formatet {0}, {1}, {2}, och så vidare. Du kan också ange precision genom att lägga till en andra siffra.
Observera följande exempel:
konst skärm = ny ds. CharacterScreen();
låta x = 7;
låta y = 12;
trösta.log (ds.format("X är {0} och Y är {1}"x, y));
trösta.log (ds.format("X = {04}", x));
screen.message.write (ds.format("X är ungefär {0}", x));
Tänk på att precision med en andra siffra kanske inte ger felfria resultat i alla scenarier.
Kunder: Möjliggör interaktion med sensorer och ställdon
DeviceScript-ekosystemet abstraherar interaktion med sensorer, ställdon och andra hårdvarukomponenter genom Jacdac-tjänster.
Detta ramverk behandlar sensorer som servrar, medan dina skript kopplar klienter till dessa servrar för att underlätta interaktion. För att illustrera detta koncept, överväg scenariot med en styrenhet för ett hemvärmesystem.
Värmesystemet omfattar ett relä som reglerar driften av ugnen, en temperatursensor och en rotationsgivare för justering av önskad temperatur. I DeviceScript definierar du klienter, även kallade roller, för varje obligatorisk tjänst.
Ta en titt på följande kodavsnitt:
importera { Temperatur, relä } från"@devicescript/core";
konst termometer = ny Temperatur();
konst termometer2 = ny Temperatur();
konst relä = ny Relä();
Genom att instansiera nödvändiga serviceklienter, som t.ex termometer, termometer 2, och relä, upprättar du sömlös kommunikation med motsvarande servrar.
DeviceScript hårdvaruservrar
För att interagera med valfri hårdvarukomponent i DeviceScript använder du tjänstklienter. För effektiv programmering av dessa hårdvarukomponenter är det dock absolut nödvändigt att initiera serviceservrar på den underliggande hårdvaran.
DeviceScript erbjuder ett omfattande utbud av servrar inom @devicescript/servrar modul, och därmed effektivisera denna process.
Till exempel startknapp funktionen gör att du kan distribuera en knappserver på en specifik pin och erhålla motsvarande klient. Observera följande exempel:
importera { gpio } från"@devicescript/core";
importera { startknapp } från"@devicescript/servrar";
konst knappA = startknapp({ stift: gpio(2),});
Genom att införliva det här kodavsnittet i ditt skript får du möjligheten att interagera med stift 2 (den hårdvaruspecifika identifieraren) genom knappA klient. Du kan sedan prenumerera på händelser som knapptryckningar och utföra specifika åtgärder i din IoT-applikation.
Styrkande av IoT-utveckling med DeviceScript
Med DeviceScript kan du utnyttja TypeScript för små IoT-enheter, vilket optimerar kod för begränsade miljöer. Dess konsolutgång förenklar loggning och datavisualisering. Genom att abstrahera hårdvaruinteraktion genom Jacdec-tjänster effektiviserar den kommunikationen med sensorer och ställdon.
Integrerat med Visual Studio Code erbjuder DeviceScript en omfattande miljö för utveckling, vilket gör det till ett värdefullt verktyg för effektiva och säkra IoT-lösningar. Med DeviceScript och Visual Studio Code kan du med säkerhet bygga IoT-lösningar som inte bara är effektiva utan också upprätthåller en hög säkerhetsnivå genom hela utvecklingsprocessen.