serial_link#
What is a Serial 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 SerialLink class within VEXlink allows for a stream of data to be sent between robots, the contents of the stream needs to be understood by both the transmitting and receiving robot, this class is usually used as part of higher layer of software that encodes and decodes packets as necessary.
To create a VEXlink, both EXP Brains must be connected to a V5 Robot Radio.
Initializing the SerialLink Class#
A VEXlink is created by using the following constructor:
The serial_link
constructor creates a serial_link object.
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 "seriallink" with the serial_link class.
serial_link seriallink = serial_link(PORT1, "Link", linkType::manager);
This seriallink
object will be used in all subsequent examples throughout this API documentation when referring to serial_link class methods.
Class Methods#
send()#
The send(buffer)
method sends a buffer through the serial link.
Parameters |
Description |
---|---|
buffer |
A string or bytearray. The message to send. |
Returns: An integer representing the length of the message sent.
// Send the string 'test'.
seriallink.send('test');
receive()#
The receive(length, timeout)
method receives data from the serial link.
Parameters |
Description |
---|---|
length |
The maximum amount of data to wait for. |
timeout |
The timeout value in milliseconds before the function returns. |
Returns: An integer with the length of the received data.
// Wait for 128 bytes of data for 1000mS.
int buffer = seriallink.receive(128, 1000);
received()#
The received(callback)
method registers a callback function for when data is received.
Parameters |
Description |
---|---|
callback |
The callback function to be called when data is received. |
Returns: None.