Η βελτίωση TypeScript της Microsoft μπορεί να σας βοηθήσει να αναπτύξετε πολύπλοκα συστήματα που υποστηρίζονται από το Internet of Things.

Το DeviceScript είναι μια καινοτομία αιχμής από τη Microsoft Research. Επεκτείνει τις δυνατότητες του TypeScript για να φιλοξενήσει συσκευές Internet of Things (IoT) μικρής κλίμακας με περιορισμένους πόρους.

Ο κύριος στόχος του είναι να σας επιτρέψει να γράψετε κώδικα στο TypeScript και να τον μεταγλωττίσετε σε προσαρμοσμένο bytecode, βελτιστοποιημένο για ανάπτυξη σε περιβάλλοντα με περιορισμούς πόρων.

Έξοδος κονσόλας στο DeviceScript

Microsoft DeviceScript προσφέρει μια φιλική προς το χρήστη κονσόλα. Υποστηρίζει την έξοδο μηνυμάτων και την καταγραφή δεδομένων αισθητήρων, αλλά χρησιμεύει και ως α πολύτιμο εργαλείο για τον έλεγχο σφαλμάτων.

Μια σειρά λειτουργιών είναι στη διάθεσή σας για την καταγραφή μηνυμάτων με διαφορετικά επίπεδα καταγραφής:

κονσόλα.debug("debug")
κονσόλα.κούτσουρο("κούτσουρο")
κονσόλα.προειδοποιώ("προειδοποιώ")
κονσόλα.λάθος("λάθος")

Η έξοδος της κονσόλας είναι εύκολα ορατή στο παράθυρο τερματικού DeviceScript. Μπορεί να βοηθήσει στην παροχή πολύτιμων πληροφοριών σχετικά με την εκτέλεση του κώδικά σας και να βοηθήσει τη διαδικασία εντοπισμού σφαλμάτων.

instagram viewer

Επιπλέον, το DeviceScript απλοποιεί την καταγραφή των δεδομένων αισθητήρων παρέχοντας το κονσόλα.δεδομένα λειτουργία, η οποία προσθέτει αυτόματα μια χρονική σήμανση στα καταγεγραμμένα δεδομένα.

Εξετάστε το ακόλουθο παράδειγμα:

συνθ θερμοκρασία = 20;
συνθ υγρασία = 60;
κονσόλα.data({ θερμοκρασία, υγρασία });

Για πρόσβαση στα καταγεγραμμένα δεδομένα, μπορείτε να πλοηγηθείτε στο DeviceScript - Έξοδος δεδομένων παραθύρου στον κώδικα του Visual Studio ή πραγματοποιήστε λήψη του από το μενού προβολής.

Ισχυρή μορφοποίηση συμβολοσειρών

Όταν χρησιμοποιείτε το console.log() λειτουργία στο DeviceScript, έχετε πολλές επιλογές για τη μορφοποίηση συμβολοσειρών για βελτιωμένη απόδοση. Εξετάστε τα ακόλουθα ενδεικτικά παραδείγματα:

αφήνω x = 0;
αφήνω y = 4;
κονσόλα.κούτσουρο(«Χαιρετίσματα, κόσμος»);
κονσόλα.κούτσουρο("Η τιμή του Χ είναι", Χ, "ενώ το Υ είναι", y);
κονσόλα.κούτσουρο("X=", Χ, "Y=", y);
κονσόλα.κούτσουρο(`Χ=${x} Υ=${y}`);
κονσόλα.κούτσουρο("X=" + x + "Y=" + y);

Ο μεταγλωττιστής DeviceScript εισάγει αυτόματα κενά, με αποτέλεσμα πιο ευανάγνωστη έξοδο. Για παράδειγμα, το δεύτερο και το τρίτο παράδειγμα θα παράγουν Η τιμή του Χ είναι 7 ενώ του Υ είναι 12 και Χ=7 Υ=12, αντίστοιχα.

Όταν γράφετε σε μητρώα, μπορείτε επίσης να χρησιμοποιήσετε συνένωση και κυριολεκτικά πρότυπα. Εξετάστε το ακόλουθο απόσπασμα κώδικα:

συνθ οθόνη = νέος ds. CharacterScreen();
αφήνω x = 7;
screen.message.write("Η τιμή του Χ είναι" + x);
screen.message.write(`Το X ισούται με ${x}`);

Χρησιμοποιώντας τη συνένωση ή τις κυριολεκτικές λέξεις προτύπων, μπορείτε να δημιουργήσετε αβίαστα δυναμικές συμβολοσειρές για να καλύψετε ένα ευρύ φάσμα απαιτήσεων.

Επιπλέον, το DeviceScript προσφέρει το ds.format() λειτουργία για προηγμένη μορφοποίηση συμβολοσειρών. Μπορείτε να χρησιμοποιήσετε αυτή τη λειτουργία σε συνδυασμό με console.log() ή κατά τη διαμόρφωση καταχωρητών συμβολοσειρών.

Καθορίστε σύμβολα κράτησης θέσης για ορίσματα χρησιμοποιώντας τη μορφή {0}, {1}, {2}, και ούτω καθεξής. Μπορείτε επίσης να καθορίσετε την ακρίβεια προσθέτοντας ένα δεύτερο ψηφίο.

Παρατηρήστε το ακόλουθο παράδειγμα:

συνθ οθόνη = νέος ds. CharacterScreen();
αφήνω x = 7;
αφήνω y = 12;
κονσόλα.log (ds.format("X είναι {0} και Y είναι {1}", x, y));
κονσόλα.log (ds.format("X = {04}", Χ));
screen.message.write (ds.format("Το X είναι περίπου {0}", Χ));

Λάβετε υπόψη ότι ο καθορισμός ακρίβειας με ένα δεύτερο ψηφίο ενδέχεται να μην αποφέρει άψογα αποτελέσματα σε όλα τα σενάρια.

Πελάτες: Ενεργοποίηση αλληλεπίδρασης με αισθητήρες και ενεργοποιητές

Το οικοσύστημα DeviceScript αφαιρεί την αλληλεπίδραση με αισθητήρες, ενεργοποιητές και άλλα στοιχεία υλικού μέσω των υπηρεσιών Jacdac.

Αυτό το πλαίσιο αντιμετωπίζει τους αισθητήρες ως διακομιστές, ενώ τα σενάρια σας συνδέουν τους πελάτες με αυτούς τους διακομιστές για να διευκολύνουν την αλληλεπίδραση. Για να επεξηγήσετε αυτήν την έννοια, εξετάστε το σενάριο ενός ελεγκτή συστήματος θέρμανσης σπιτιού.

Το σύστημα θέρμανσης περιλαμβάνει ένα ρελέ που ρυθμίζει τη λειτουργία του κλιβάνου, έναν αισθητήρα θερμοκρασίας και έναν περιστροφικό κωδικοποιητή για τη ρύθμιση της επιθυμητής θερμοκρασίας. Στο DeviceScript, ορίζετε πελάτες, που αναφέρονται επίσης ως ρόλοι, για κάθε απαιτούμενη υπηρεσία.

Ρίξτε μια ματιά στο παρακάτω απόσπασμα κώδικα:

εισαγωγή { Θερμοκρασία, Ρελέ } από"@devicescript/core";
συνθ θερμόμετρο = νέος Θερμοκρασία();
συνθ θερμόμετρο 2 = νέος Θερμοκρασία();
συνθ ρελέ = νέος Αναμετάδοση();

Με την εγκατάσταση των απαραίτητων υπηρεσιών πελατών, όπως π.χ θερμόμετρο, θερμόμετρο 2, και αναμετάδοση, δημιουργείτε απρόσκοπτη επικοινωνία με τους αντίστοιχους διακομιστές.

Διακομιστές υλικού DeviceScript

Για να αλληλεπιδράσετε με οποιοδήποτε στοιχείο υλικού στο DeviceScript, χρησιμοποιείτε πελάτες υπηρεσιών. Ωστόσο, για αποτελεσματικό προγραμματισμό αυτών των στοιχείων υλικού, είναι επιτακτική ανάγκη να αρχικοποιηθούν οι διακομιστές υπηρεσιών στο υποκείμενο υλικό.

Το DeviceScript προσφέρει μια εκτεταμένη γκάμα διακομιστών εντός του @devicescript/διακομιστές μονάδα, εξορθολογίζοντας έτσι αυτή τη διαδικασία.

Για παράδειγμα, το κουμπί εκκίνησης Η λειτουργία σάς δίνει τη δυνατότητα να αναπτύξετε έναν διακομιστή κουμπιών σε μια συγκεκριμένη καρφίτσα και να αποκτήσετε τον αντίστοιχο πελάτη. Παρατηρήστε το ακόλουθο παράδειγμα:

εισαγωγή { gpio } από"@devicescript/core";
εισαγωγή { κουμπί εκκίνησης } από"@devicescript/servers";
συνθ buttonA = startButton({ καρφίτσα: gpio(2),});

Με την ενσωμάτωση αυτού του αποσπάσματος κώδικα στο σενάριό σας, αποκτάτε τη δυνατότητα να αλληλεπιδράτε με την καρφίτσα 2 (το αναγνωριστικό συγκεκριμένου υλικού) μέσω του κουμπί Α πελάτης. Στη συνέχεια, μπορείτε να εγγραφείτε σε συμβάντα, όπως το πάτημα κουμπιών και να εκτελέσετε συγκεκριμένες ενέργειες εντός της εφαρμογής IoT.

Ενδυναμώνοντας την ανάπτυξη IoT με DeviceScript

Το DeviceScript σάς δίνει τη δυνατότητα να αξιοποιήσετε το TypeScript για μικρές συσκευές IoT, βελτιστοποιώντας τον κώδικα για περιορισμένα περιβάλλοντα. Η έξοδος της κονσόλας του απλοποιεί την καταγραφή και την οπτικοποίηση δεδομένων. Με την αφαίρεση της αλληλεπίδρασης υλικού μέσω των υπηρεσιών Jacdec, απλοποιεί την επικοινωνία με αισθητήρες και ενεργοποιητές.

Ενσωματωμένο με τον κώδικα του Visual Studio, το DeviceScript προσφέρει ένα ολοκληρωμένο περιβάλλον ανάπτυξης, καθιστώντας το πολύτιμο εργαλείο για αποτελεσματικές και ασφαλείς λύσεις IoT. Με το DeviceScript και τον κώδικα του Visual Studio, μπορείτε να δημιουργήσετε με σιγουριά λύσεις IoT που όχι μόνο είναι αποτελεσματικές αλλά και διατηρούν υψηλό επίπεδο ασφάλειας σε όλη τη διαδικασία ανάπτυξης.