Enlace de mensaje#
¿Qué es un enlace de mensaje?#
VEXlink permite la comunicación entre dos cerebros EXP, lo que permite conexiones punto a punto y la creación de redes de comunicación entre varios robots. Admite comunicación inalámbrica y por cable; en estas últimas, se recomienda un cable inteligente modificado para evitar problemas de enrutamiento de energía. Para la comunicación inalámbrica, cada robot necesita una radio robótica V5 conectada a un puerto inteligente. La radio VEXlink puede usarse junto con la radio VEXnet de un controlador V5, que debe conectarse al puerto inteligente con el número más alto para evitar conflictos.
La clase MessageLink dentro de VEXlink facilita el envío de mensajes simples, como “reproducir” y “detener”, con datos mínimos al robot conectado.
Inicializando la clase MessageLink#
Un VEXlink se crea utilizando el siguiente constructor:
MessageLink(puerto, nombre, tipo de enlace, cableado)
Este constructor utiliza cuatro parámetros:
Parámetro |
Descripción |
---|---|
|
Un Puerto inteligente válido al que está conectada la radio VEXlink. |
|
El nombre de este enlace. Se recomienda que esta cadena única sea lo suficientemente larga como para que, al ser procesada por vexos, genere un ID único. Un nombre de enlace incorrecto sería algo genérico como “vexlink”, ya que podría ser utilizado por otro equipo. |
|
El tipo de enlace, ya sea |
|
Opcional. Si se trata de una conexión por cable. Establézcalo en |
# Construct a VEXlink "link" with the MessageLink class.
link = MessageLink(Ports.PORT1, "Link", VexlinkType.MANAGER)
Este objeto “enlace” se utilizará en todos los ejemplos posteriores a lo largo de esta documentación de API cuando se haga referencia a los métodos de la clase MessageLink.
Métodos de clase#
is_linked()#
El método is_linked()
devuelve el estado actual de VEXlink.
Devuelve: «Verdadero» si el VEXlink está activo y conectado al cerebro emparejado. «Falso» si no lo está.
send()#
El método send(message, index, value)
envía un mensaje a través del VEXlink.
Parámetros |
Descripción |
---|---|
mensaje |
El mensaje a enviar. |
índice |
Opcional. Un número entero, como un número de puerto. |
valor |
Opcional. Un flotador. |
Devuelve: La longitud de los datos transmitidos o «Ninguno» si hay un error.
# Send the message 'test' with no parameters.
link.send('test')
# Send the message 'test' with parameters.
link.send('test', 1, 3.14)
receive()#
El método receive(timeout)
recibe un mensaje del VEXlink.
Parámetros |
Descripción |
---|---|
se acabó el tiempo |
Opcional. La duración del tiempo de espera para recibir el mensaje en milisegundos antes de que la función regrese. |
Devuelve: El mensaje recibido o «Ninguno» si hay un error.
received()#
El método received(callback, arg)
registra una función de devolución de llamada cuando se recibe un mensaje. Si se omite el mensaje, se llamará a la función de devolución de llamada para todos los mensajes.
Parámetros |
Descripción |
---|---|
llamar de vuelta |
La función de devolución de llamada que se llamará cuando se reciba un mensaje. |
arg |
Opcional. Una tupla de argumentos para pasar a la función de devolución de llamada. |
Devoluciones: Ninguna.
# Define a function message_received()
def message_received():
# The Brain will print that the message was received by
# the Message Link on the Brain's screen.
Brain.screen.print("message received")
# Run message_received() when a message is received.
link.received(message_received)
installed()#
El método installed()
verifica si VEXlink está conectado.
Devuelve: «Verdadero» si el VEXlink está conectado. «Falso» si no lo está.