• 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
Léim go dtí an príomhábhar
Ctrl+K

< Back to Platform Select

  • VEX V5
  • Tagairt API VEX V5
  • VEXlink
  • Nasc Sraitheach
Gaeilge
  • English
  • العربية
  • বাংলা
  • Česky
  • Deutsch
  • Ελληνικά
  • Español
  • Español Latinoamericano
  • Suomi
  • Français
  • हिंदी
  • Magyar
  • Bahasa Indonesia
  • 日本語
  • 한국어
  • Lietuvių
  • Latviešu
  • മലയാളം
  • Nederlands
  • Polski
  • Português
  • Русский
  • Svenska
  • ไทย
  • Türkçe
  • Українська
  • Tiếng Việt
  • 简体中文
  • 繁體中文
  • VEXcode Robotics Logo

Nascleanúint na Rannóige

  • Bloic
  • Python
  • C++
    • Tiomáint
    • Mótair agus Rialaitheoirí Mótair
    • Rialaitheoir
    • Inchinn
    • Comórtas
    • Gléasanna Calafoirt Chliste
    • Gléasanna 3-Sreang
    • Consól
    • Lóighic
    • VEXlink
      • Nasc Teachtaireachta
      • Nasc Sraitheach
    • Ceall Oibre CTE
  • Ranganna Teagaisc VEXcode

Nascleanúint Ardáin

  • 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

Nasc Sraitheach#

  • Réamhrá

  • Tógálaithe Ranga

  • Scriostóir Ranga

  • Paraiméadair

  • Nótaí

  • Sampla

  • Feidhmeanna na mBall

    • isLinked

    • seol

    • faigh

    • faighte

Réamhrá#

Ceadaíonn an rang serial_link sruth de bheart amha a sheoladh idir róbait. Tá sé deartha le haghaidh cumarsáide idir róbait áit a dtuigeann an róbat tarchuir agus an róbat glactha araon ábhar an tsrutha sonraí.

Cuireann gach úsáid a bhaintear as send sonraí le scuaine an V5 Brain nasctha, agus léitear an scuaine isteach ar dtús, amach ar dtús (FIFO). Má sheoltar iltheachtaireachtaí sula bhfaigheann na húsáidí V5 Brain eile iad, stórálfar agus cuirfear ar ais iad ceann ar cheann san ord inar seoladh iad. Ós rud é gur féidir le teachtaireachtaí scuaine a dhéanamh, d’fhéadfadh sé go gcruthófaí riaráiste má sheoltar an stádas céanna arís agus arís eile i ngach lúb; i gcás loighic ríthábhachtach ó thaobh ama de, seoltar ach amháin nuair a athraíonn luachanna.

Tábhachtach: Caithfidh an dá róbat tionscadail a úsáideann serial_link a bheith ag rith ag an am céanna, nó ní sheolfar/ní gheofar aon sonraí.

Tógálaithe Ranga#

serial_link(
 int32_t index,
 const char *name,
 linkType type,
 bool isWired = false );

Scriostóir Ranga#

Scriosann sé an réad serial_link agus scaoileann sé acmhainní gaolmhara.

~serial_link();

Paraiméadair#

Paraiméadar

Cineál

Cur síos

index

int32_t

An Port Cliste a bhfuil an nasc teachtaireachta ceangailte leis, scríofa mar PORTx, áit a seasann x don uimhir phoirt (mar shampla, PORT1).

name

const char*

Ainm an naisc seo. Moltar go mbeadh an teaghrán uathúil seo fada go leor chun go gcruthófar aitheantóir uathúil nuair a dhéanann vexos hasháil air. Bheadh ​​​​ainm nasc lochtach rud éigin cineálach amhail “vexlink” mar d’fhéadfadh foireann eile é a úsáid.

type

linkType

An cineál nasc, bíodh sé linkType::manager nó linkType::workerÚsáidtear an fhaisnéis seo chun an raidió a chumrú i gceart agus cinneann sé an bandaleithead atá ar fáil le haghaidh tarchuir agus glactha freisin. Tá dhá oiread an bandaleithead atá ar fáil ag róbat bainisteora (1040 beart/soicind) chun faisnéis a sheoladh chuig an róbat oibrí (520 beart/soicind).

  • linkType::manager — Is bainisteoir é an réad serial_link
  • linkType::worker — Is oibrí é an réad serial_link

isWired

bool

Cibé an bhfuil an réad serial_link sreangaithe (réamhshocrú false):

  • false — Tá an réad serial_link sreangaithe
  • true — Tá an réad serial_link gan sreang

Nótaí#

  • Tacaíonn VEXlink le cumarsáid gan sreang agus sreangaithe araon, agus moltar cábla cliste modhnaithe le haghaidh naisc sreangaithe chun fadhbanna ródaithe cumhachta a chosc.

  • Chun cumarsáid gan sreang a dhéanamh, ní mór do gach róbat Raidió Róbat V5 atá ceangailte le Port Cliste a bheith aige.

  • Is féidir an Raidió VEXlink a úsáid in éineacht le raidió VEXnet Rialaitheora V5, ar cheart é a cheangal leis an gCalafort Cliste leis an uimhir is airde chun coimhlintí a sheachaint.

  • Chun VEXlink a chruthú, ní mór an dá V5 Brains a bheith ceangailte le Raidió Róbat V5.

Sampla#

Cód do Róbat 1

// Create a wireless link in Port 1
serial_link link = serial_link(
  PORT1, // index
  "VEXRoboticsLink123456789", // name
  linkType::manager, // type
  true); // isWired

Cód do Róbat 2

// Create a wireless link in Port 1
serial_link link = serial_link(
  PORT1, // index
  "VEXRoboticsLink123456789", // name
  linkType::worker, // type
  true); // isWired

Feidhmeanna na mBall#

Áirítear leis an rang serial_link na feidhmeanna ball seo a leanas:

  • isLinked — Seiceálann sé an bhfuil na V5 Brains péireáilte agus ag cumarsáid ar an nasc seo.

  • send — Seolann sé teachtaireacht chuig an Inchinn phéireáilte.

  • receive — Fanann sé leis an gcéad teachtaireacht isteach eile agus seolann sé ar ais í.

  • received — Cláraíonn sé feidhm le glaoch uirthi aon uair a fhaightear teachtaireacht nua.

Sula nglaotar ar aon fheidhmeanna serial_link , ní mór sampla serial_link a chruthú, mar a thaispeántar thíos:

Cód do Róbat 1

// Create a wireless link in Port 1
serial_link link = serial_link(
  PORT1, // index
  "VEXRoboticsLink123456789", // name
  linkType::manager, // type
  true); // isWired

Cód do Róbat 2

// Create a wireless link in Port 1
serial_link link = serial_link(
  PORT1, // index
  "VEXRoboticsLink123456789", // name
  linkType::worker, // type
  true); // isWired

isLinked#

Tugann sé seo ar ais an bhfuil na V5 Brains ar nasc sraitheach péireáilte le chéile.

Available Functions
bool isLinked();

Parameters

Níl aon pharaiméadair ag an bhfeidhm seo.

Return Values

Tugann sé seo luach Boolean ar ais a léiríonn an bhfuil na Brains V5 nasctha:

  • true — The two V5 Brains are paired and communicating on this link.
  • false — The two V5 Brains are not paired on this link.
Notes
  • Is dea-chleachtas é a sheiceáil i gcónaí go bhfuil na V5 Brains nasctha ag tús tionscadail sula ritheann tú aon chód eile.

Examples

Cód do Róbat 1

// Create the link
  serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::manager, true);

  // Do not run code UNTIL the Brains are linked
  while (!link.isLinked()) {
    wait(0.1, seconds);
  }

  Brain.Screen.print("Robot 1 - Manager");
  Brain.Screen.newLine();
  Brain.Screen.print("Sending message...");

  // Message to send
  const char* message = "Hello Robot 2";

  // Send the message
  link.send((uint8_t*)message, strlen(message));

Cód do Róbat 2

// Create the link
  serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::worker, true);

  // Do not run code UNTIL the Brains are linked
  while (!link.isLinked()) {
    wait(0.1, seconds);
  }
  
  Brain.Screen.print("Robot 2 - Worker");
  Brain.Screen.newLine();
  Brain.Screen.print("Waiting...");

  // Buffer to store incoming bytes
  uint8_t buffer[32] = {0};

  int32_t n = link.receive(buffer, sizeof(buffer) - 1);

  // Null-terminate
  if (n > 0) {
    buffer[n] = 0;

    // Display the message that was sent
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
    Brain.Screen.print("Robot 2 - Worker");
    Brain.Screen.newLine();
    Brain.Screen.print((char*)buffer);
  }
  else {
    Brain.Screen.newLine();
    Brain.Screen.print("No message received");
  }

send#

Seolann sé teachtaireacht chuig an inchinn phéireáilte.

Available Functions

1 — Seolann sé teachtaireacht ag baint úsáide as maolán beart.

int32_t send( 
  uint8_t *buffer, 
  int32_t  length );

2 — Seolann sé teachtaireacht ag baint úsáide as maolán carachtar.

int32_t send( 
  const char *buffer, 
  int32_t     length );

Parameters

Paraiméadar

Cineál

Cur síos

buffer

uint8_t* or const char*

An maolán le seoladh chuig an Inchinn V5 nasctha eile.

length

int32_t

Fad an mhaoláin le seoladh.

Return Values

Tugann sé int32_t a léiríonn líon na mbeart a seoladh.

Examples

Cód do Róbat 1

// Create the link
  serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::manager, true);

  // Do not run code UNTIL the Brains are linked
  while (!link.isLinked()) {
    wait(0.1, seconds);
  }

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Robot 1 - Manager");

  // Track last sent state
  uint8_t lastState = 255;  // impossible initial value

 // Tell Robot 2 when the screen is being pressed
  while (true) {
    uint8_t state = Brain.Screen.pressing() ? 1 : 0;

    // Only send if state changed
    if (state != lastState) {
      link.send(&state, 1);
      lastState = state;
    }

    wait(0.02, seconds);
  }

Cód do Róbat 2

// Create the link
  serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::worker, true);

  // Do not run code UNTIL the Brains are linked
   while (!link.isLinked()) {
    wait(0.1, seconds);
  }

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Robot 2 - Worker");
  Brain.Screen.newLine();
  Brain.Screen.print("Waiting...");

  // Track the last state
  uint8_t lastShown = 255;

  while (true) {
    // Variable stores 1 - pressed, 0 - not pressed 
    uint8_t state = 0;
    int32_t n = link.receive(&state, 1, 200);

    // Only update screen if state changes
    if (n == 1 && state != lastShown) {
      Brain.Screen.clearScreen();
      Brain.Screen.setCursor(1, 1);
      Brain.Screen.print("Robot 2 - Worker");
      Brain.Screen.newLine();

      // Display text if Robot 1's screen is being pressed
      if (state == 1) {
        Brain.Screen.print("Manager IS being pressed!");
      } else {
        Brain.Screen.print("Manager is NOT being pressed");
      }

      lastShown = state;
    }
    wait(0.02, seconds);
  }

receive#

Fanann leis an gcéad teachtaireacht eile atá ag teacht isteach agus tugann sí ar ais í.

Available Functions

1 — Faigheann sé teachtaireacht i maolán carachtar le ham scoir roghnach.

int32_t receive( 
  char    *buffer, 
  int32_t  length, 
  int32_t  timeoutMs = 500);

Parameters

Paraiméadar

Cineál

Cur síos

buffer

char*

An maolán chun an teachtaireacht a fuarthas a stóráil.

length

int32_t

Fad an mhaoláin.

timeoutMs

int32_t

Cé chomh fada i milleasoicindí a fhanfaidh receive le haghaidh teachtaireacht nua ach amháin má tá an scuaine folamh (réamhshocraithe go 500ms).

Return Values

Tugann sé int32_t a léiríonn líon na mbeart a fuarthas.

Notes
  • receive seolann an chéad teachtaireacht eile atá sa scuaine ón V5 Brain nasctha eile.

  • Léitear teachtaireachtaí in ord FIFO (an ceann is sine gan léamh ar dtús).

  • Má tá an scuaine folamh nuair a ghlaotar receive , fanann sé suas go dtí an teorainn ama timeoutMs le haghaidh teachtaireacht nua.

  • Mura dtagann aon teachtaireacht isteach sa fhuinneog sin, tugann receive 0ar ais, agus fanann aon teachtaireacht a sheoltar ina dhiaidh sin sa scuaine le léamh an chéad uair eile a úsáidtear receive.

Examples

Cód do Róbat 1

// Create the link
  serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::manager, true);

  // Do not run code UNTIL the Brains are linked
  while (!link.isLinked()) {
    wait(0.1, seconds);
  }

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Robot 1 - Manager");

  // Track last sent state
  uint8_t lastState = 255;  // impossible initial value

 // Tell Robot 2 when the screen is being pressed
  while (true) {
    uint8_t state = Brain.Screen.pressing() ? 1 : 0;

    // Only send if state changed
    if (state != lastState) {
      link.send(&state, 1);
      lastState = state;
    }

    wait(0.02, seconds);
  }

Cód do Róbat 2

// Create the link
  serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::worker, true);

  // Do not run code UNTIL the Brains are linked
   while (!link.isLinked()) {
    wait(0.1, seconds);
  }

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Robot 2 - Worker");
  Brain.Screen.newLine();
  Brain.Screen.print("Waiting...");

  // Track the last state
  uint8_t lastShown = 255;

  while (true) {
    // Variable stores 1 - pressed, 0 - not pressed 
    uint8_t state = 0;
    int32_t n = link.receive(&state, 1, 200);

    // Only update screen if state changes
    if (n == 1 && state != lastShown) {
      Brain.Screen.clearScreen();
      Brain.Screen.setCursor(1, 1);
      Brain.Screen.print("Robot 2 - Worker");
      Brain.Screen.newLine();

      // Display text if Robot 1's screen is being pressed
      if (state == 1) {
        Brain.Screen.print("Manager IS being pressed!");
      } else {
        Brain.Screen.print("Manager is NOT being pressed");
      }

      lastShown = state;
    }
    wait(0.02, seconds);
  }

received#

Cláraíonn sé feidhm le glaoch uirthi aon uair a fhaigheann an V5 Brain sonraí.

Available Functions

1 — Cláraíonn sé feidhm ghlao ar ais do gach maolán beart a fhaightear.

void received( 
  void (* callback)(uint8_t *, int32_t) );

Parameters

Paraiméadar

Cineál

Cur síos

callback

void (*)(uint8_t *, int32_t)

Feidhm atá sainmhínithe roimhe seo a ritheann nuair a fhaigheann an V5 Brain sonraí.

Return Values

Ní thugann an fheidhm seo luach ar ais.

Notes
  • received glaoitear ar ais le dhá argóint: maolán beart agus líon na mbeart a fuarthas.

  • B’fhéidir nach mbeidh críoch nialasach ar na sonraí a fuarthas. Má dhéileálann an glao ar ais leis na sonraí mar shreangán, cóipeáil na bearta a fuarthas isteach i sraith carachtar agus cuir críoch nialasach leis.

Callback Signature

callback(buffer, length)

Argóint

Cur síos

buffer

Pointeoir chuig an maolán beart a fuarthas.

length

Líon na mbeart a fuarthas.

Examples

Cód do Róbat 1

// Create the link.
serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::manager, true);

// Send left or right when pressed.
void screen_pressed() {
  if (Brain.Screen.xPosition() < 240) {
    link.send((uint8_t*)"left", 4);
  } else {
    link.send((uint8_t*)"right", 5);
  }
}

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Do not run code UNTIL the Brains are linked.
  while (!link.isLinked()) {
    wait(0.1, seconds);
  }

  Brain.Screen.print("Robot 1 - Manager");


  Brain.Screen.pressed(screen_pressed);

  while (true) {
    wait(10, msec);
  }
}

Cód do Róbat 2

// Called when message received.
void received_callback(uint8_t *buffer, int32_t length) {
  char msg[32];

  // Copy safely and null terminate.
  int n = (length < 31) ? length : 31;
  memcpy(msg, buffer, n);
  msg[n] = '\0';

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1,1);
  Brain.Screen.print("Robot 2 - Worker");
  Brain.Screen.newLine();

  // Display if Robot 1's screen is pressed on left or right
  if (strcmp(msg, "left") == 0) {
    Brain.Screen.print("Manager pressed LEFT");
  }
  else if (strcmp(msg, "right") == 0) {
    Brain.Screen.print("Manager pressed RIGHT");
  }
}

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Create the link.
  serial_link link(PORT1, "VEXRoboticsLink123456789", linkType::worker, true);

  // Do not run code UNTIL the Brains are linked.
  while (!link.isLinked()) {
    wait(0.1, seconds);
  }

  link.received(received_callback);

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1,1);
  Brain.Screen.print("Robot 2 - Worker");
  Brain.Screen.newLine();
  Brain.Screen.print("Waiting...");

  while (true) {
    wait(10, msec);
  }
}

previous

Nasc Teachtaireachta

next

Ceall Oibre CTE

On this page
  • Réamhrá
  • Tógálaithe Ranga
  • Scriostóir Ranga
  • Paraiméadair
  • Nótaí
  • Sampla
  • Feidhmeanna na mBall
    • isLinked
    • send
    • receive
    • received
Innovation First, International
​

Is trádmharcanna nó marcanna seirbhíse de chuid Innovation First, Inc. iad VEX agus VEX Robotics. Cóipcheart ©2026Gach ceart ar cosaint. Is fochuideachta de chuid Innovation First International, Inc. é VEX Robotics, Inc. Is leis na húinéirí faoi seach gach ainm/marc táirge eile de chuid daoine eile. Paitinní agus/nó Paitinní atá ar Feitheamh - innovationfirst.com/patents
Polasaí Príobháideachta an tSuímh / Téarmaí Úsáide an tSuímh / Polasaí Fianán / Polasaí Príobháideachta Bogearraí

Tabhair cuairt ar Leathanach Facebook VEX Robotics Tabhair cuairt ar Leathanach Twitter VEX Robotics Tabhair cuairt ar Leathanach Instagram VEX Robotics Tabhair cuairt ar leathanach YouTube VEX Robotics
Foirm Aiseolais API VEX

Cuirimid luach ar d’aiseolas! Úsáid an fhoirm seo chun moltaí, moladh, nó earráidí a thuairisciú maidir le VEX API. Cuidíonn d’aiseolas linn doiciméadacht VEX API a fheabhsú.

​

Má bhíonn fadhbanna teicniúla agat nó má theastaíonn tacaíocht do chustaiméirí uait, tabhair cuairt ar support.vex.com.

  • Send Happy Feedback
  • Send Sad Feedback

Tabhair faoi deara: roinnfear an URL reatha le do theachtaireacht

Trí do sheoladh ríomhphoist a chur san áireamh, aontaíonn tú go bhféadfadh VEX ríomhphoist ríomhphoist a sheoladh chugat má bhíonn ceisteanna againn faoi d’aiseolas.
Polasaí Príobháideachais >
Tabhair d'aiseolas le do thoil. Aiseolas curtha isteach go rathúil!
Choose Which VEX IQ Generation to View

VEX IQ (1st gen)

VEX IQ (2nd gen)