De TypeScript-verbetering van Microsoft kan u helpen bij het ontwikkelen van complexe systemen die worden aangedreven door het internet der dingen.
DeviceScript is een baanbrekende innovatie van Microsoft Research. Het breidt de mogelijkheden van TypeScript uit om plaats te bieden aan kleinschalige Internet of Things (IoT)-apparaten met beperkte middelen.
Het belangrijkste doel is om u in staat te stellen code in TypeScript te schrijven en deze te compileren in aangepaste bytecode, geoptimaliseerd voor implementatie in omgevingen met beperkte middelen.
Console-uitvoer in DeviceScript
Microsoft DeviceScript biedt een gebruiksvriendelijke console. Het ondersteunt berichtuitvoer en het loggen van sensorgegevens, maar dient ook als een waardevol hulpmiddel voor foutcontrole.
Een scala aan functies staat tot uw beschikking om berichten met verschillende logniveaus te loggen:
troosten.debug("foutopsporing")
troosten.log("logboek")
troosten.waarschuwen("waarschuwen")
troosten.fout("fout")
De console-uitvoer is direct zichtbaar in het DeviceScript-terminalvenster. Het kan waardevolle inzichten bieden in de uitvoering van uw code en helpen bij het debuggen.
Bovendien vereenvoudigt DeviceScript het loggen van sensorgegevens door de console.gegevens functie, die automatisch een tijdstempel toevoegt aan de gelogde gegevens.
Beschouw het volgende voorbeeld:
const temperatuur = 20;
const vochtigheid = 60;
troosten.data({ temperatuur, vochtigheid });
Om toegang te krijgen tot de gelogde gegevens, kunt u navigeren naar de DeviceScript - Gegevensuitvoer deelvenster in Visual Studio Code of download het vanuit het weergavemenu.
Krachtige tekenreeksopmaak
Bij gebruik van de console.log() functie in DeviceScript, heb je veel opties om strings op te maken voor verbeterde uitvoer. Beschouw de volgende illustratieve voorbeelden:
laten x= 0;
laten j = 4;
troosten.log("Groeten, wereld");
troosten.log("De waarde van X is", X, "terwijl Y is", y);
troosten.log("X=", X, "Y=", y);
troosten.log(`X=${x} J=${y}`);
troosten.log("X=" +x+ " Y=" + j);
De DeviceScript-compiler voegt automatisch spaties in, wat resulteert in beter leesbare uitvoer. Het tweede en derde voorbeeld zullen bijvoorbeeld produceren De waarde van X is 7 terwijl Y 12 is En X=7 Y=12, respectievelijk.
Bij het schrijven naar registers kunt u ook aaneenschakeling en letterlijke sjablonen gebruiken. Beschouw het volgende codefragment:
const scherm = nieuw ds. Karakterscherm();
laten x= 7;
scherm.bericht.schrijven("De waarde van X is " +x);
scherm.bericht.schrijven(`X is gelijk aan ${x}`);
Door aaneenschakeling of letterlijke sjablonen te gebruiken, kunt u moeiteloos dynamische tekenreeksen construeren om tegemoet te komen aan een breed scala aan vereisten.
Verder biedt DeviceScript de ds.format() functie voor geavanceerde tekenreeksopmaak. U kunt deze functie gebruiken in combinatie met console.log() of bij het configureren van stringregisters.
Geef tijdelijke aanduidingen op voor argumenten met behulp van de indeling {0}, {1}, {2}, enzovoorts. U kunt de precisie ook specificeren door een tweede cijfer toe te voegen.
Let op het volgende voorbeeld:
const scherm = nieuw ds. Karakterscherm();
laten x= 7;
laten j = 12;
troosten.log (ds.format("X is {0} en Y is {1}", x, y));
troosten.log (ds.format("X = {04}", X));
scherm.bericht.schrijven (ds.format("X is ongeveer {0}", X));
Houd er rekening mee dat het specificeren van precisie met een tweede cijfer mogelijk niet in alle scenario's onberispelijke resultaten oplevert.
Klanten: Interactie mogelijk maken met sensoren en actuatoren
Het DeviceScript-ecosysteem abstraheert de interactie met sensoren, actuatoren en andere hardwarecomponenten via Jacdac-services.
Dit raamwerk behandelt sensoren als servers, terwijl uw scripts clients met deze servers verbinden om interactie te vergemakkelijken. Om dit concept te illustreren, beschouwen we het scenario van een regelaar van een huisverwarmingssysteem.
Het verwarmingssysteem omvat een relais dat de werking van de oven regelt, een temperatuursensor en een roterende encoder voor het instellen van de gewenste temperatuur. In DeviceScript definieert u clients, ook wel rollen genoemd, voor elke gewenste service.
Bekijk het volgende codefragment:
importeren {Temperatuur, Relais} van"@devicescript/kern";
const thermometer = nieuw Temperatuur();
const thermometer2 = nieuw Temperatuur();
const relais = nieuw Relais();
Door de benodigde serviceclients te instantiëren, zoals thermometer, thermometer2, En relais, breng je een naadloze communicatie tot stand met de bijbehorende servers.
DeviceScript-hardwareservers
Voor interactie met een hardwarecomponent in DeviceScript maakt u gebruik van serviceclients. Voor een effectieve programmering van deze hardwarecomponenten is het echter absoluut noodzakelijk om serviceservers op de onderliggende hardware te initialiseren.
DeviceScript biedt een uitgebreid aanbod aan servers binnen de @devicescript/servers module, waardoor dit proces wordt gestroomlijnd.
Bijvoorbeeld de startknop functie stelt u in staat om een knopserver op een specifieke pin te implementeren en de bijbehorende client te verkrijgen. Let op het volgende voorbeeld:
importeren { gpio } van"@devicescript/kern";
importeren { startknop } van"@devicescript/servers";
const knopA = startknop({ pin: gpio(2),});
Door dit codefragment in uw script op te nemen, krijgt u de mogelijkheid om te communiceren met pin 2 (de hardwarespecifieke identificatie) via de knopA cliënt. U kunt zich dan abonneren op gebeurtenissen zoals het indrukken van knoppen en specifieke acties uitvoeren binnen uw IoT-toepassing.
IoT-ontwikkeling mogelijk maken met DeviceScript
Met DeviceScript kunt u TypeScript gebruiken voor kleine IoT-apparaten, waardoor code voor beperkte omgevingen wordt geoptimaliseerd. De console-uitvoer vereenvoudigt logging en datavisualisatie. Door hardware-interactie via Jacdec-services te abstraheren, stroomlijnt het de communicatie met sensoren en actuatoren.
Geïntegreerd met Visual Studio Code, biedt DeviceScript een uitgebreide omgeving voor ontwikkeling, waardoor het een waardevolle tool is voor efficiënte en veilige IoT-oplossingen. Met DeviceScript en Visual Studio Code kunt u vol vertrouwen IoT-oplossingen bouwen die niet alleen efficiënt zijn, maar ook een hoog beveiligingsniveau behouden gedurende het gehele ontwikkelingsproces.