message_link#
What is a Message Link?#
VEXlink enables an EXP Brain to communicate with another EXP Brain, allowing for point-to-point connections and the creation of communication meshes between multiple robots. It supports both wireless and wired communication, with wired connections recommending a modified smart cable to prevent power routing issues. For wireless communication, each robot needs a V5 Robot Radio connected to a Smart Port, and the VEXlink Radio can be used alongside a V5 Controller’s VEXnet radio, which should be connected to the highest numbered Smart Port to avoid conflicts.
The message_link class within VEXlink facilitates sending simple messages, such as “play” and “stop,” with minimal data to the connected robot.
Initializing the message_link Class#
A VEXlink is created by using the following constructor:
The message_link
constructor creates a message_link object in the specified Port, with the specified ID and linktype, and sets the wired flag to the specified value.
Parameter |
Description |
---|---|
|
A valid Smart Port that the VEXlink Radio is connected to. |
|
The name of this link. It is recommended that this unique string is long enough that when hashed by vexos it will create a unique ID. A bad link name would be something generic such as “vexlink” as it may be used by another team. |
|
The type of link, either |
|
Whether or not it is a wired link. Set to |
// Construct a VEXlink "link" with the message_link class.
message_link link = message_link(PORT1, "link", linkType::manager);
This link
object will be used in all subsequent examples throughout this API documentation when referring to message_link class methods.
Class Methods#
send()#
This method is called in the following ways:
The send(message)
method sends a message through the Message Link.
Parameters |
Description |
---|---|
message |
The message to send. |
Returns: An integer representing the length of transmitted data.
// Send the message 'test' with no parameters.
link.send('test');
The send(message, value)
method sends a message through the Message Link.
Parameters |
Description |
---|---|
message |
The message to send. |
value |
An float representing the ID of the message. |
Returns: An integer representing the length of transmitted data.
The send(message, index, value)
method sends a message through the Message Link.
Parameters |
Description |
---|---|
message |
The message to send. |
index |
An integer representing the port the receiving Message Link is connected to. |
value |
An float representing the ID of the message. |
Returns: An integer representing the length of transmitted data.
receive()#
The receive(timeout)
command receives a message from the Message Link.
Parameters |
Description |
---|---|
timeout |
The timeout duration for receiving the message in milliseconds before the function returns. |
Returns: The received message.
received()#
The received(callback)
command registers a callback function for when a message is received. If the message is omitted then the callback function will be called for all messages.
Parameters |
Description |
---|---|
callback |
The callback function to be called when a message is received. |
Returns: An instance of the event class.