Μήνυμα#

Εισαγωγή#

Δύο ρομπότ κωδικοποίησης VEX AIM μπορούν να συνδεθούν, ώστε να μπορούν να επικοινωνούν κατά τη διάρκεια ενός έργου. Τα μπλοκ μηνυμάτων επιτρέπουν σε ένα ρομπότ να στέλνει ένα μήνυμα στο άλλο ρομπότ. Ένα μήνυμα μπορεί να περιλαμβάνει κείμενο από μόνο του ή κείμενο με έναν αριθμό.

Τα ληφθέντα μηνύματα αποθηκεύονται σε μια ουρά FIFO (first-in, first-out). Αυτό σημαίνει ότι το πρώτο μήνυμα που λαμβάνεται είναι το πρώτο μήνυμα που θα διαβαστεί.

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

Σημείωση: Για να αποστέλλονται και να λαμβάνονται μηνύματα, και τα δύο ρομπότ πρέπει να είναι συνδεδεμένα και τα δύο ρομπότ πρέπει να εκτελούν έργα που χρησιμοποιούν μπλοκ μηνυμάτων.

Παρακάτω είναι μια λίστα με όλα τα μπλοκ:

Τιμές — Διαβάστε τις πληροφορίες μηνύματος ή ελέγξτε την κατάσταση του μηνύματος και της σύνδεσης.

Ενέργειες — Αποστολή ή αποθήκευση ληφθέντων μηνυμάτων.

Αξίες#

τελευταίο μήνυμα#

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

μπλοκ ρεπόρτερ τελευταίου μηνύματος#
(τελευταίο μήνυμα)

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

Ρομπότ 1

Όταν πατηθεί η οθόνη, στέλνει ένα μήνυμα στο Robot 2.#
όταν η οθόνη [πατήθηκε v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
εκτύπωση [Robot 1] στην οθόνη ▶
αποστολή μηνύματος [Hello, Robot 2!]

Ρομπότ 2

Όταν ξεκινήσει, εμφανίζει το πιο πρόσφατο αποθηκευμένο μήνυμα.#
όταν ξεκινά
[Code for Robot 2.]
[Display the message Robot 1 sends.]
εκτύπωση [Robot 2] στην οθόνη ▶
μετακίνηση κέρσορα στην επόμενη σειρά στην οθόνη
περίμενε μέχρι <υπάρχει διαθέσιμο μήνυμα;>
λήψη τελευταίου μηνύματος
εκτύπωση (τελευταίο μήνυμα) στην οθόνη ▶

τελευταία δεδομένα#

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

τελευταίο μπλοκ αναφοράς δεδομένων#
(τελευταία δεδομένα)

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

Ρομπότ 1

Όταν ξεκινήσει, στέλνει συνεχώς την κατεύθυνση του Ρομπότ 1 στο Ρομπότ 2.#
όταν ξεκινά
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
εκτύπωση [Robot 1] στην οθόνη ▶
για πάντα
αποστολή μηνύματος [heading] με δεδομένα (κατεύθυνση σε μοίρες)
τέλος

Ρομπότ 2

Όταν ξεκινήσει, γυρίζει για να ταιριάζει με τα πιο πρόσφατα αποθηκευμένα δεδομένα.#
όταν ξεκινά
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
εκτύπωση [Robot 2] στην οθόνη ▶
για πάντα
αν <υπάρχει διαθέσιμο μήνυμα;> τότε
λήψη τελευταίου μηνύματος με δεδομένα
στροφή σε κατεύθυνση (τελευταία δεδομένα) μοίρες ▶
τέλος
τέλος

Είναι διαθέσιμο το μήνυμα;#

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

  • Σωστό — Υπάρχει ένα μήνυμα διαθέσιμο για ανάγνωση.

  • Λάθος — Δεν υπάρχουν διαθέσιμα μηνύματα για ανάγνωση.

Είναι διαθέσιμο το μήνυμα; Λογικό μπλοκ#
<υπάρχει διαθέσιμο μήνυμα;>

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

Ρομπότ 1

Όταν πατηθεί η οθόνη, στέλνει ένα μήνυμα στο Robot 2.#
όταν η οθόνη [πατήθηκε v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
εκτύπωση [Robot 1] στην οθόνη ▶
αποστολή μηνύματος [message]

Ρομπότ 2

Όταν ξεκινήσει, εμφανίζει ένα μήνυμα όταν το Ρομπότ 1 στέλνει ένα μήνυμα.#
όταν ξεκινά
[Code for Robot 2.]
[Display a message when Robot 1 sends a message.]
εκτύπωση [Robot 2] στην οθόνη ▶
μετακίνηση κέρσορα στην επόμενη σειρά στην οθόνη
περίμενε μέχρι <υπάρχει διαθέσιμο μήνυμα;>
εκτύπωση [Received!] στην οθόνη ▶

είναι συνδεδεμένο;#

Το μπλοκ είναι συνδεδεμένο; Boolean αναφέρει εάν το ρομπότ είναι συνδεδεμένο με άλλο ρομπότ. Χρησιμοποιήστε αυτό το μπλοκ πριν από την αποστολή ή την αναμονή μηνυμάτων εάν το έργο χρειάζεται να ελέγξει ότι η σύνδεση ρομπότ με ρομπότ είναι έτοιμη.

  • Σωστό — Το ρομπότ είναι συνδεδεμένο με ένα άλλο ρομπότ.

  • Λάθος — Το ρομπότ δεν είναι συνδεδεμένο με άλλο ρομπότ.

είναι συνδεδεμένο; Λογικό μπλοκ#
<είναι συνδεδεμένο;>

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

Όταν ξεκινήσει, εμφανίζει εάν το ρομπότ είναι συνδεδεμένο.#
όταν ξεκινά
[Turn off one of the linked robots to see the message change.]
για πάντα
εκκαθάριση οθόνης
εκτύπωση <είναι συνδεδεμένο;> στην οθόνη ▶
τέλος

συνδεδεμένο όνομα ρομπότ#

Το μπλοκ αναφοράς όνομα συνδεδεμένου ρομπότ αναφέρει το όνομα του συνδεδεμένου ρομπότ. Χρησιμοποιήστε αυτό το μπλοκ για να δείξετε ποιο ρομπότ είναι συνδεδεμένο πριν από την αποστολή ή τη λήψη μηνυμάτων. Εάν δεν υπάρχει συνδεδεμένο ρομπότ, αυτό το μπλοκ αναφέρει Κανένα.

συνδεδεμένο μπλοκ αναφοράς ονόματος ρομπότ#
(όνομα συνδεδεμένου ρομπότ)

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

Όταν ξεκινήσει, εμφανίζει το όνομα του συνδεδεμένου ρομπότ.#
όταν ξεκινά
[Display the name of the robot that is linked.]
εκτύπωση (όνομα συνδεδεμένου ρομπότ) στην οθόνη ▶

Ενέργειες#

αποστολή μηνύματος#

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

μπλοκ στοίβας αποστολής μηνύματος#
αποστολή μηνύματος [message]

Παράμετρος

Περιγραφή

μήνυμα

Το κείμενο που θα σταλεί στο συνδεδεμένο ρομπότ.

Παράδειγμα

Ρομπότ 1

Όταν πατηθεί η οθόνη, στέλνει ένα μήνυμα στο Robot 2.#
όταν η οθόνη [πατήθηκε v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
εκτύπωση [Robot 1] στην οθόνη ▶
αποστολή μηνύματος [Hello, Robot 2!]

Ρομπότ 2

Όταν ξεκινήσει, εμφανίζει το μήνυμα που στάλθηκε από το Ρομπότ 1.#
όταν ξεκινά
[Code for Robot 2.]
[Display the message Robot 1 sends.]
εκτύπωση [Robot 2] στην οθόνη ▶
μετακίνηση κέρσορα στην επόμενη σειρά στην οθόνη
περίμενε μέχρι <υπάρχει διαθέσιμο μήνυμα;>
λήψη τελευταίου μηνύματος
εκτύπωση (τελευταίο μήνυμα) στην οθόνη ▶

αποστολή μηνύματος με δεδομένα#

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

αποστολή μηνύματος με μπλοκ στοίβας δεδομένων#
αποστολή μηνύματος [message] με δεδομένα [0]

Παράμετρος

Περιγραφή

μήνυμα

Το κείμενο που θα σταλεί στο συνδεδεμένο ρομπότ.

δεδομένα

Ο αριθμός που θα σταλεί με το μήνυμα.

Παράδειγμα

Ρομπότ 1

Όταν ξεκινήσει, στέλνει συνεχώς την κατεύθυνση του Ρομπότ 1 στο Ρομπότ 2.#
όταν ξεκινά
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
εκτύπωση [Robot 1] στην οθόνη ▶
για πάντα
αποστολή μηνύματος [heading] με δεδομένα (κατεύθυνση σε μοίρες)
τέλος

Ρομπότ 2

Όταν ξεκινήσει, γυρίζει για να ταιριάζει με την κατεύθυνση που στέλνει το Ρομπότ 1.#
όταν ξεκινά
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
εκτύπωση [Robot 2] στην οθόνη ▶
για πάντα
αν <υπάρχει διαθέσιμο μήνυμα;> τότε
λήψη τελευταίου μηνύματος με δεδομένα
στροφή σε κατεύθυνση (τελευταία δεδομένα) μοίρες ▶
τέλος
τέλος

λάβετε το τελευταίο μήνυμα#

Το μπλοκ στοίβας λήψη τελευταίου μηνύματος λαμβάνει το επόμενο ληφθέν μήνυμα κειμένου από την ουρά μηνυμάτων και το αποθηκεύει, ώστε το έργο να μπορεί να το χρησιμοποιήσει. Χρησιμοποιήστε αυτό το μπλοκ αφού το είναι διαθέσιμο το μήνυμα; αναφέρει True και πριν χρησιμοποιήσετε το τελευταίο μήνυμα. Αυτό βοηθά το ρομπότ λήψης να αποθηκεύσει το μήνυμα πριν προσπαθήσει να το εμφανίσει, να το συγκρίνει ή να το χρησιμοποιήσει σε άλλο μπλοκ.

Χρησιμοποιήστε την εντολή αποστολή μηνύματος στο άλλο ρομπότ για να στείλετε ένα μήνυμα μόνο κειμένου.

λήψη του τελευταίου μπλοκ στοίβας μηνυμάτων#
λήψη τελευταίου μηνύματος

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

Ρομπότ 1

Όταν πατηθεί η οθόνη, στέλνει ένα μήνυμα στο Robot 2.#
όταν η οθόνη [πατήθηκε v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
εκτύπωση [Robot 1] στην οθόνη ▶
αποστολή μηνύματος [Hello, Robot 2!]

Ρομπότ 2

Όταν ξεκινήσει, αποθηκεύει και εμφανίζει το μήνυμα που στάλθηκε από το Robot 1.#
όταν ξεκινά
[Code for Robot 2.]
[Display the message Robot 1 sends.]
εκτύπωση [Robot 2] στην οθόνη ▶
μετακίνηση κέρσορα στην επόμενη σειρά στην οθόνη
περίμενε μέχρι <υπάρχει διαθέσιμο μήνυμα;>
λήψη τελευταίου μηνύματος
εκτύπωση (τελευταίο μήνυμα) στην οθόνη ▶

λάβετε το τελευταίο μήνυμα με δεδομένα#

Το μπλοκ στοίβας λήψη τελευταίου μηνύματος με δεδομένα λαμβάνει το επόμενο ληφθέν μήνυμα από την ουρά μηνυμάτων και αποθηκεύει και τα δύο μέρη του: το μήνυμα κειμένου και τον αριθμό που στάλθηκε μαζί του. Χρησιμοποιήστε αυτό το μπλοκ αφού το είναι διαθέσιμο μήνυμα; αναφέρει Αληθές και πριν χρησιμοποιήσει το τελευταίο μήνυμα ή το τελευταία δεδομένα. Αυτό βοηθά το ρομπότ λήψης να αποθηκεύσει και τις δύο τιμές πριν τις χρησιμοποιήσει, όπως για παράδειγμα να στραφεί σε μια επικεφαλίδα που έστειλε ένα άλλο ρομπότ.

Χρησιμοποιήστε την εντολή αποστολή μηνύματος με δεδομένα στο άλλο ρομπότ για να στείλετε το κείμενο και τον αριθμό μαζί.

λήψη του τελευταίου μηνύματος με το μπλοκ στοίβας δεδομένων#
λήψη τελευταίου μηνύματος με δεδομένα

Παράμετροι

Περιγραφή

Αυτό το μπλοκ δεν έχει παραμέτρους.

Παράδειγμα

Ρομπότ 1

Όταν ξεκινήσει, στέλνει συνεχώς την κατεύθυνση του Ρομπότ 1 στο Ρομπότ 2.#
όταν ξεκινά
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
εκτύπωση [Robot 1] στην οθόνη ▶
για πάντα
αποστολή μηνύματος [heading] με δεδομένα (κατεύθυνση σε μοίρες)
τέλος

Ρομπότ 2

Όταν ξεκινήσει, αποθηκεύει τα δεδομένα του μηνύματος και γυρίζει ώστε να ταιριάζει με την κατεύθυνση του Ρομπότ 1.#
όταν ξεκινά
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
εκτύπωση [Robot 2] στην οθόνη ▶
για πάντα
αν <υπάρχει διαθέσιμο μήνυμα;> τότε
λήψη τελευταίου μηνύματος με δεδομένα
στροφή σε κατεύθυνση (τελευταία δεδομένα) μοίρες ▶
τέλος
τέλος