L'amélioration TypeScript de Microsoft peut vous aider à développer des systèmes complexes alimentés par l'Internet des objets.

DeviceScript est une innovation de pointe de Microsoft Research. Il étend les capacités de TypeScript pour s'adapter aux appareils Internet des objets (IoT) à petite échelle avec des ressources limitées.

Son objectif principal est de vous permettre d'écrire du code en TypeScript et de le compiler en bytecode personnalisé, optimisé pour le déploiement dans des environnements à ressources limitées.

Sortie de la console dans DeviceScript

Microsoft DeviceScript offre une console conviviale. Il prend en charge la sortie de messages et l'enregistrement des données des capteurs, mais sert également de outil précieux pour la vérification des erreurs.

Une gamme de fonctions est à votre disposition pour journaliser les messages avec différents niveaux de journalisation :

console.déboguer("déboguer")
console.enregistrer("enregistrer")
console.avertir("avertir")
console.erreur("erreur")

La sortie de la console est facilement visible dans la fenêtre du terminal DeviceScript. Cela peut aider à fournir des informations précieuses sur l'exécution de votre code et à faciliter le processus de débogage.

De plus, DeviceScript simplifie l'enregistrement des données des capteurs en fournissant le console.data fonction, qui ajoute automatiquement un horodatage aux données enregistrées.

Considérez l'exemple suivant :

constante température = 20;
constante humidité = 60;
console.data({ température, humidité });

Pour accéder aux données enregistrées, vous pouvez naviguer jusqu'au DeviceScript - Sortie de données volet dans Visual Studio Code ou téléchargez-le à partir du menu Affichage.

Formatage de chaîne puissant

Lors de l'utilisation du console.log() fonction dans DeviceScript, vous avez de nombreuses options pour formater les chaînes pour une meilleure sortie. Considérez les exemples illustratifs suivants :

laisser x = 0;
laisser y = 4;
console.enregistrer("Salutations, monde");
console.enregistrer("La valeur de X est", X, "tandis que Y est", y);
console.enregistrer("X=", X, "O=", y);
console.enregistrer(`X=${x} Y=${y}`);
console.enregistrer("X=" + x + " O=" + y);

Le compilateur DeviceScript insère automatiquement des espaces, ce qui donne une sortie plus lisible. Par exemple, les deuxième et troisième exemples produiront La valeur de X est 7 tandis que Y est 12 et X=7 Y=12, respectivement.

Lorsque vous écrivez dans des registres, vous pouvez également utiliser des littéraux de concaténation et de modèle. Considérez l'extrait de code suivant :

constante écran = nouveau ds. EcranCaractère();
laisser x = 7;
screen.message.write("La valeur de X est" +x);
screen.message.write(`X est égal à ${x}`);

À l'aide de littéraux de concaténation ou de modèle, vous pouvez facilement créer des chaînes dynamiques pour répondre à un large éventail d'exigences.

De plus, DeviceScript offre la ds.format() fonction pour le formatage avancé des chaînes. Vous pouvez utiliser cette fonction conjointement avec console.log() ou lors de la configuration des registres de chaînes.

Spécifiez des espaces réservés pour les arguments en utilisant le format {0}, {1}, {2}, et ainsi de suite. Vous pouvez également spécifier la précision en ajoutant un deuxième chiffre.

Observez l'exemple suivant :

constante écran = nouveau ds. EcranCaractère();
laisser x = 7;
laisser y = 12;
console.log (ds.format("X est {0} et Y est {1}", x, y));
console.log (ds.format("X = {04}", X));
screen.message.write (ds.format("X est d'environ {0}", X));

Gardez à l'esprit que spécifier la précision avec un deuxième chiffre peut ne pas donner des résultats parfaits dans tous les scénarios.

Clients: permettre l'interaction avec les capteurs et les actionneurs

L'écosystème DeviceScript fait abstraction de l'interaction avec les capteurs, les actionneurs et d'autres composants matériels via les services Jacdac.

Ce cadre traite les capteurs comme des serveurs, tandis que vos scripts connectent les clients à ces serveurs pour faciliter l'interaction. Pour illustrer ce concept, considérons le scénario d'un contrôleur de système de chauffage domestique.

Le système de chauffage comprend un relais qui régule le fonctionnement du four, un capteur de température et un encodeur rotatif pour régler la température souhaitée. Dans DeviceScript, vous définissez des clients, également appelés rôles, pour chaque service requis.

Jetez un oeil à l'extrait de code suivant :

importer { Température, Relais } depuis"@devicescript/core";
constante thermomètre = nouveau Température();
constante thermomètre2 = nouveau Température();
constante relais = nouveau Relais();

En instanciant les clients de service nécessaires, tels que thermomètre, thermomètre2, et relais, vous établissez une communication transparente avec les serveurs correspondants.

Serveurs matériels DeviceScript

Pour interagir avec n'importe quel composant matériel dans DeviceScript, vous utilisez des clients de service. Cependant, pour une programmation efficace de ces composants matériels, il est impératif d'initialiser les serveurs de service sur le matériel sous-jacent.

DeviceScript propose une large gamme de serveurs dans le @devicescript/serveurs module, rationalisant ainsi ce processus.

Par exemple, le Bouton Start permet de déployer un serveur de boutons sur un pin spécifique et d'obtenir le client correspondant. Observez l'exemple suivant :

importer { gpio } depuis"@devicescript/core";
importer { Bouton Start } depuis"@devicescript/serveurs";
constante boutonA = startButton({ broche: gpio(2),});

En incorporant cet extrait de code dans votre script, vous avez la possibilité d'interagir avec la broche 2 (l'identifiant spécifique au matériel) via le boutonA client. Vous pouvez ensuite vous abonner à des événements tels que des pressions sur des boutons et exécuter des actions spécifiques dans votre application IoT.

Renforcer le développement IoT avec DeviceScript

DeviceScript vous permet d'exploiter TypeScript pour les petits appareils IoT, en optimisant le code pour les environnements contraints. Sa sortie console simplifie la journalisation et la visualisation des données. En faisant abstraction de l'interaction matérielle via les services Jacdec, il rationalise la communication avec les capteurs et les actionneurs.

Intégré à Visual Studio Code, DeviceScript offre un environnement de développement complet, ce qui en fait un outil précieux pour des solutions IoT efficaces et sécurisées. Avec DeviceScript et Visual Studio Code, vous pouvez créer en toute confiance des solutions IoT qui sont non seulement efficaces, mais qui maintiennent également un haut niveau de sécurité tout au long du processus de développement.