• VEXcode Robotics Logo VEX Robotics Logo
  • VEX API Home Button VEX API Home Button
  • VEX 123 logo in purple VEX 123 logo in white
  • VEX GO logo in lime green VEX GO logo in white
  • VEXcode AIM logo in blue VEXcode AIM logo in white
  • VEX IQ logo in blue VEX IQ logo in white
  • VEX EXP logo in red VEX EXP logo in white
  • VEX V5 logo in red VEX V5 logo in white
  • VEX CTE logo in green VEX CTE logo in white
  • VEX AIR logo in orange VEX AIR logo in white
  • VEXcode VR logo in gold VEXcode VR logo in white
Μετάβαση στο κύριο περιεχόμενο
Ctrl+K

< Back to Platform Select

  • VEX V5
  • Αναφορά API VEX V5
  • VEXlink
  • Σύνδεσμος Μηνύματος
Ελληνικά
  • English
  • Español
  • 简体中文
  • VEXcode Robotics Logo

Πλοήγηση ενότητας

  • Μπλοκ
  • Πύθων
    • Σύστημα μετάδοσης κίνησης
    • Κίνηση
    • Οραμα
    • Οθόνη
    • Ελεγκτής
    • Εξεύρεση της φόρας
    • Αδρανειακό
    • Συσκευές 3 καλωδίων
    • Αεριολογία
    • Εγκέφαλος
    • Ήχος
    • Κάρτα SD
    • VEXlink
      • Σύνδεσμος Μηνύματος
      • Σειριακός σύνδεσμος
    • Κονσόλα
    • Λογική
    • Βραχίονας 6 αξόνων
    • Μαγνήτης
    • Ανταγωνισμός
    • Βιβλιοθήκες MicroPython
  • C++
  • Εκπαιδευτικά σεμινάρια VEXcode

Πλοήγηση πλατφόρμας

  • VEX 123 logo in purple VEX 123 logo in white
  • VEX GO logo in lime green VEX GO logo in white
  • VEXcode AIM logo in blue VEXcode AIM logo in white
  • VEX IQ logo in blue VEX IQ logo in white
  • VEX EXP logo in red VEX EXP logo in white
  • VEX V5 logo in red VEX V5 logo in white
  • VEX CTE logo in green VEX CTE logo in white
  • VEX AIR logo in orange VEX AIR logo in white
  • VEXcode VR logo in gold VEXcode VR logo in white

Σύνδεσμος Μηνύματος#

  • Εισαγωγή

  • Δημιουργία συνδέσμου

  • Διαθέσιμες μέθοδοι

    • είναι_συνδεδεμένο

    • στέλνω

    • λαμβάνω

    • έλαβε

Εισαγωγή#

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

Every usage of send adds a message to the linked V5 Brain’s queue, and the queue is read first-in, first-out (FIFO). If multiple messages are sent before the other V5 Brain uses receive, they will be stored and returned one at a time in the order they were sent. Because messages can queue, repeatedly sending the same status every loop may create backlog; for time-critical logic, send only when values change.

Important: Both robots must be running projects that use MessageLink at the same time, or no messages will be sent/received.

This page uses link as the example MessageLink name. Replace it with your own configured name as needed.

Παρακάτω είναι μια λίστα με τις διαθέσιμες μεθόδους:

  • is_linked – Returns whether this Brain is actively connected to its paired Brain.

  • send – Sends a message to the paired Brain.

  • receive – Waits for and returns the next incoming message.

  • received – Registers a function to be called whenever a new message is received.

Δημιουργία συνδέσμου#

Δημιουργήστε ένα MessageLink και στους δύο εγκεφάλους V5 για να δημιουργήσετε ένα κανάλι επικοινωνίας μεταξύ τους —είτε ασύρματα με τα V5 Robot Radios είτε μέσω ενός ενσύρματου έξυπνου καλωδίου— ώστε τα ρομπότ να μπορούν να στέλνουν μηνύματα μεταξύ τους.

MessageLink(smartport, name, linktype, wired)

Παράμετρος

Περιγραφή

smartport

The Smart Port used for this link—the port the V5 Robot Radio is connected to (wireless) or the Smart Cable is plugged into (wired). Written as Ports.PORTx where x is the port number.

name

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

linktype

The role this Brain will use for this link pair. Each pair must include one Manager and one Worker:

  • VexlinkType.MANAGER – Use for the robot that will send more or larger messages. Managers have higher outbound bandwidth (~1040 bytes/sec).
  • VexlinkType.WORKER – Use for the robot that will send fewer or smaller messages. Workers have lower outbound bandwidth (~520 bytes/sec).

wired

Optional. Whether this link is wired or wireless:

  • True – The V5 Brains are connected via a Smart Cable.
  • False (default) – The V5 Brains connect wirelessly using V5 Robot Radios.

Κωδικός για το Ρομπότ 1

"""
Create a wireless link in Port 1
name: VEXRoboticsLink123456789
linktype: Manager
"""
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.MANAGER)

Κωδικός για το Ρομπότ 2

"""
Create a wireless link in Port 1
name: VEXRoboticsLink123456789
linktype: Worker
"""
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.WORKER)

Διαθέσιμες μέθοδοι#

Μόλις ρυθμιστεί το MessageLink και συνδεθούν οι Brains, μπορείτε να χρησιμοποιήσετε τις παρακάτω μεθόδους για να στέλνετε, να λαμβάνετε και να απαντάτε σε μηνύματα.

is_linked#

is_linked method returns whether the V5 Brains on a MessageLink are paired with one another.

  • True – The two V5 Brains are paired and communicating on this link.

  • False – The two V5 Brains are not paired on this link.

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

Usage:
link.is_linked()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

Κωδικός για το Ρομπότ 1

# Tell the other robot when the screen is being pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.MANAGER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 1 - Manager")

# Continuously send if the screen is being pressed
while True:
    if brain.screen.pressing():
        link.send("pressed")
    else:
        link.send("released")

    wait(50, MSEC)

Κωδικός για το Ρομπότ 2

# Display if the other robot's screen is being pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.WORKER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

# Continuously check if Robot 1 has sent "pressed"
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Robot 2 - Worker")
    brain.screen.next_row()

    if link.receive() == "pressed":
        brain.screen.new_line()
        brain.screen.print("Manager is being pressed!")

    wait(50, MSEC)

send#

send sends a string and/or an integer and/or float to the other linked V5 Brain.

Usage:
send(string, integer, float)

Παράμετροι

Περιγραφή

string

Η συμβολοσειρά που θα σταλεί στον άλλο συνδεδεμένο εγκέφαλο V5.

integer

Προαιρετικό. Ένας ακέραιος αριθμός για αποστολή στον άλλο συνδεδεμένο εγκέφαλο V5.

float

Προαιρετικό. Ένας αριθμός κινητής υποδιαστολής για αποστολή στον άλλο συνδεδεμένο εγκέφαλο V5. Οι αριθμοί κινητής υποδιαστολής μορφοποιούνται σε 4 δεκαδικά ψηφία. Εάν παρέχονται λιγότερα δεκαδικά ψηφία, προστίθενται μηδενικά στο τέλος μέχρι να εμφανιστούν 4.

If only string is sent, the other linked V5 Brain receives that exact string.

If integer and/or float are included, the receiving Brain gets a single encoded string that combines all fields in this order: .string_integer_float

Example: Using link.send(“string”, 1, 2.55) is received as .string_1_2.5500.

Κωδικός για το Ρομπότ 1

# Tell the other robot when the screen is being pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.MANAGER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 1 - Manager")

# Continuously send if the screen is being pressed
while True:
    if brain.screen.pressing():
        link.send("pressed")
    else:
        link.send("released")

    wait(50, MSEC)

Κωδικός για το Ρομπότ 2

# Display if the other robot's screen is being pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.WORKER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

# Continuously check if Robot 1 has sent "pressed"
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Robot 2 - Worker")
    brain.screen.next_row()

    if link.receive() == "pressed":
        brain.screen.new_line()
        brain.screen.print("Manager is being pressed!")

    wait(50, MSEC)

Κωδικός για το Ρομπότ 1

# Tell the other robot where the screen was pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.MANAGER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 1 - Manager")
brain.screen.next_row()
brain.screen.print("Tap to send circles")

# Send the coordinates whenever the screen is pressed
while True:
    if brain.screen.pressing():
        x = brain.screen.x_position()
        y = brain.screen.y_position()

        link.send("touch", x, y)

    wait(10, MSEC)

Κωδικός για το Ρομπότ 2

# Draw a circle where Robot 1's screen was pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.WORKER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 2 - Worker")

while True:
    # Get the full encoded string
    circle_coordinates = link.receive(200)

    if circle_coordinates:

        # Split the encoded string by _
        parts = circle_coordinates.split("_")

        if len(parts) == 3:
            # Convert the coordinates back into numbers
            x = float(parts[1])
            y = float(parts[2])

            brain.screen.set_fill_color(Color.WHITE)
            brain.screen.draw_circle(x, y, 20)

    wait(10, MSEC)

receive#

receive returns the next queued message from the other linked V5 Brain. Messages are read in FIFO order (oldest unread first). If the queue is empty when receive is called, it waits up to the specified timeout for a new message. If no message arrives in that window, receive returns None, and any message sent afterward remains in the queue to be read the next time receive is used.

If the other linked V5 Brain sent only a string, receive returns that exact string.

If the other linked V5 Brain sent an integer and/or float, receive returns a single encoded string that combines all fields in this order: .string_integer_float

For example, if the other linked V5 Brain uses link.send(“string”, 1, 2.55), then using link.receive() returns an encoded string such as .string_1_2.5500. You can split this encoded string (see the examples below) to extract the message name, integer, and float values.

If you’d rather avoid manual splitting/parsing, use received to register a handler for a specific message name; the handler receives the sent values as arguments.

Usage:
receive(timeout)

Παράμετροι

Περιγραφή

timeout

Optional. How long in milliseconds receive will wait for a new message only if the queue is empty. Default is 300,000 (300 seconds).

Κωδικός για το Ρομπότ 1

# Tell the other robot when the screen is being pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.MANAGER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 1 - Manager")

# Continuously send if the screen is being pressed
while True:
    if brain.screen.pressing():
        link.send("pressed")
    else:
        link.send("released")

    wait(50, MSEC)

Κωδικός για το Ρομπότ 2

# Display if the other robot's screen is being pressed

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.WORKER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

# Continuously check if Robot 1 has sent "pressed"
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Robot 2 - Worker")
    brain.screen.next_row()

    if link.receive() == "pressed":
        brain.screen.new_line()
        brain.screen.print("Manager is being pressed!")

    wait(50, MSEC)

Κωδικός για το Ρομπότ 1

# Send a math problem for the other Brain to solve

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.MANAGER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 1 - Manager")

"""
Change whether to "add" or "subtract",
then what numbers to use in the operation.
"""
link.send("add", 7, 2.5)

Κωδικός για το Ρομπότ 2

# Solve the math problem that the other Brain sends

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.WORKER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 2 - Worker")
brain.screen.next_row()

math_problem = link.receive()

if math_problem:

    # Split the encoded string by _
    parts = math_problem.split("_")

    if len(parts) == 3:
        # Remove the . from the beginning of the string
        operator = "".join([c for c in parts[0] if c.isalpha()])

        # Separate out the numbers for the operation
        a = int(parts[1])
        b = float(parts[2])

        # Use what operator was sent
        if operator == "add":
            result = a + b
        elif operator == "subtract":
            result = a - b
        # If neither add or subtract is sent, do nothing
        else:
            pass

brain.screen.print("Result = ", result)

received#

received registers a function to be called whenever the V5 Brain receives a sent message.

Usage:
link.received(message, arg)

Παράμετροι

Περιγραφή

message

The message name (string) to match. When a received message’s name matches this value, the callback function is called.

callback

A previously defined function that runs when the V5 Brain receives a message matching message.

received callbacks are called with four arguments:

Callback Signature:
callback(message, linkname, index, value)

Επιχείρημα

Περιγραφή

message

The message name that was received (for example, “add”).

linkname

Το όνομα του συνδέσμου από τον οποίο ελήφθη το μήνυμα.

index

Η ακέραια τιμή που αποστέλλεται με το μήνυμα (εάν παρέχεται).

value

Η τιμή float που αποστέλλεται με το μήνυμα (εάν παρέχεται).

Κωδικός για το Ρομπότ 1

# Send a math problem for the other Brain to solve

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.MANAGER)

# Do not run code UNTIL the Brains are linked
while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 1 - Manager")

"""
Change whether to "add" or "subtract",
then what numbers to use in the operation.
"""
link.send("add", 7, 2.5)

Κωδικός για το Ρομπότ 2

# Solve the math problem that the other Brain sends

# Create the link
link = MessageLink(Ports.PORT1, "VEXRoboticsLink123456789", VexlinkType.WORKER)

while not link.is_linked():
    wait(0.1, SECONDS)

brain.screen.print("Robot 2 - Worker")
brain.screen.next_row()

# add if "add" is received
def add_cmd(message, linkname, a, b):
    result = a + b
    brain.screen.print("Result = ", result)

# subtract if ""subtract" is received
def subtract_cmd(message, linkname, a, b):
    result = a - b
    brain.screen.print("Result = ", result)

# Create event handlers for "add" and "subtract"
link.received("add", add_cmd)
link.received("subtract", subtract_cmd)

προηγούμενο

VEXlink

επόμενο

Σειριακός σύνδεσμος

On this page
  • Εισαγωγή
  • Δημιουργία συνδέσμου
  • Διαθέσιμες μέθοδοι
    • is_linked
    • send
    • receive
    • received
Innovation First, International

Τα VEX και VEX Robotics είναι εμπορικά σήματα ή σήματα υπηρεσιών της Innovation First, Inc. Πνευματικά δικαιώματα ©2026. Με επιφύλαξη παντός δικαιώματος. Η VEX Robotics, Inc. είναι θυγατρική της Innovation First International, Inc. Όλα τα άλλα ονόματα προϊόντων/σήματα τρίτων αποτελούν ιδιοκτησία των αντίστοιχων κατόχων τους. Διπλώματα ευρεσιτεχνίας ή/και Διπλώματα ευρεσιτεχνίας σε εκκρεμότητα - innovationfirst.com/patents
Πολιτική απορρήτου ιστότοπου / Όροι χρήσης ιστότοπου / Πολιτική για τα cookie / Πολιτική απορρήτου λογισμικού

Επισκεφθείτε τη σελίδα VEX Robotics στο Facebook Επισκεφθείτε τη σελίδα VEX Robotics στο Twitter Επισκεφθείτε τη σελίδα VEX Robotics στο Instagram Επισκεφθείτε τη σελίδα VEX Robotics στο YouTube
Φόρμα σχολίων VEX API

Εκτιμούμε τα σχόλιά σας! Χρησιμοποιήστε αυτήν τη φόρμα για να μοιραστείτε προτάσεις, σχόλια ή να αναφέρετε σφάλματα με το VEX API. Η συμβολή σας μας βοηθά να βελτιώσουμε την τεκμηρίωση του VEX API.

Εάν αντιμετωπίζετε τεχνικά προβλήματα ή χρειάζεστε υποστήριξη πελατών, επισκεφθείτε τη διεύθυνση support.vex.com.

  • Send Happy Feedback
  • Send Sad Feedback

Σημείωση: η τρέχουσα διεύθυνση URL θα κοινοποιηθεί στο μήνυμά σας

Συμπεριλαμβάνοντας τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας, συμφωνείτε ότι η VEX μπορεί να σας στέλνει ηλεκτρονικά μηνύματα εάν έχουμε ερωτήσεις σχετικά με τα σχόλιά σας.
Πολιτική Απορρήτου >
Παρακαλώ δώστε τα σχόλιά σας. Τα σχόλια υποβλήθηκαν με επιτυχία!
Choose Which VEX IQ Generation to View

VEX IQ (1st gen)

VEX IQ (2nd gen)