Teachtaireacht#

Réamhrá#

Is féidir dhá Róbat Códaithe VEX AIM a nascadh le chéile ionas gur féidir leo cumarsáid a dhéanamh le linn tionscadail. Ligeann modhanna teachtaireachta do róbat amháin teachtaireacht a sheoladh chuig an róbat eile. Is féidir téacs leis féin, nó téacs le suas le trí uimhir, a bheith i dteachtaireacht.

Stóráiltear teachtaireachtaí a fhaightear i scuaine den chineál “céad isteach, céad amach” (FIFO). Ciallaíonn sé seo gurb í an chéad teachtaireacht a fhaightear an chéad teachtaireacht a léifear.

Úsáid is_message_available chun a sheiceáil an bhfuil teachtaireacht réidh le léamh. Ansin úsáid get_message chun an chéad teachtaireacht téacs eile a léamh. Má tá uimhreacha sa teachtaireacht freisin, úsáid get_message_and_data chun an téacs agus na huimhreacha a léamh le chéile.

Nóta: Chun teachtaireachtaí a sheoladh agus a fháil, ní mór don dá róbat a bheith nasctha agus ní mór don dá róbat tionscadail a rith a úsáideann modhanna Teachtaireachta.

Seo thíos liosta de na modhanna uile:

Gníomh — Seol teachtaireachtaí idir róbait.

  • send_message — Seolann sé téacs agus suas le trí uimhir chuig an róbat nasctha.

Faighteoirí — Léigh teachtaireachtaí nó seiceáil stádas an naisc.

  • get_message — Seolann sé an chéad teachtaireacht téacs eile a fuarthas ar ais.

  • get_message_and_data — Seolann sé an chéad teachtaireacht téacs agus uimhreacha eile a fuarthas ar ais.

  • is_connected — Tugann sé seo ar ais an bhfuil an róbat nasctha le róbat eile.

  • is_message_available — Tugann sé seo ar ais an bhfuil teachtaireacht ar fáil le léamh.

  • get_name — Tugann sé seo ainm an róbait nasctha ar ais.

Glaonna ar ais — Feidhmeanna a rith nuair a tharlaíonn imeachtaí teachtaireachta.

  • handle_message — Ritheann feidhm nuair a fhaightear teachtaireacht shonrach.

  • connected — Ritheann feidhm nuair a bhíonn an róbat nasctha le róbat eile.

  • disconnected — Ritheann feidhm nuair nach bhfuil an róbat nasctha le róbat eile a thuilleadh.

Gníomh#

send_message#

send_message seolann téacs agus suas le trí uimhir chuig an róbat nasctha. Bain úsáid as an modh seo ar róbat amháin nuair is gá don róbat eile ordú, comhartha, nó píosa gearr faisnéise a fháil. Seol téacs leis féin nuair is leor an teachtaireacht leis féin. Cuir uimhreacha leis nuair is gá luachanna gaolmhara don teachtaireacht, amhail “heading” a sheoladh le luach ceannteidil reatha an róbait.

Ar an róbat glactha, bain úsáid as is_message_available chun a sheiceáil an bhfuil teachtaireacht tagtha. Ansin bain úsáid as get_message le haghaidh teachtaireacht téacs amháin, nó get_message_and_data le haghaidh teachtaireacht ina bhfuil uimhreacha.

Usage:
robot.link.send_message(message, arg1, arg2, arg3)

Paraiméadar

Cur síos

message

An téacs le seoladh chuig an róbat nasctha.

arg1

Roghnach. Uimhir le seoladh leis an teachtaireacht.

arg2

Roghnach. Dara uimhir le seoladh leis an teachtaireacht.

arg3

Roghnach. An tríú uimhir le seoladh leis an teachtaireacht.

Sampla

Cód le haghaidh Róbat 1

# Press the screen to tell Robot 2 which way to turn
robot.screen.print("Robot 1")

while not robot.screen.pressing():
    wait(5, MSEC)

robot.link.send_message("right")

Cód le haghaidh Róbat 2

# Turn in the direction that Robot 1 sends
robot.screen.print("Robot 2")

while not robot.link.is_message_available():
    wait(5, MSEC)

direction = robot.link.get_message()

if direction == "left":
    robot.turn_for(LEFT, 90)
elif direction == "right":
    robot.turn_for(RIGHT, 90)

# Robot 1: continuously send the current heading to Robot 2
robot.screen.print("Robot 1")

while True:
    robot.link.send_message("heading", robot.inertial.get_heading())
    wait(50, MSEC)

# Robot 2: turn to match Robot 1's heading
robot.screen.print("Robot 2")

while True:
    if robot.link.is_message_available():
        message, heading = robot.link.get_message_and_data()
        robot.turn_to(heading)

    wait(50, MSEC)

Faighteoirí#

get_message#

Seolann get_message an chéad teachtaireacht téacs eile a fuarthas ón scuaine teachtaireachtaí ar ais. Bain úsáid as an modh seo ar an róbat glactha nuair a sheol an róbat nasctha teachtaireacht téacs amháin. Is é an t-ordú coitianta ná is_message_available a úsáid chun a sheiceáil an bhfuil teachtaireacht tagtha, ansin get_message a úsáid sula ndéantar an téacs a fuarthas a thaispeáint, a chur i gcomparáid, nó a úsáid i modh eile.

Úsáid send_message ar an róbat eile chun teachtaireacht téacs amháin a sheoladh.

Usage:
robot.link.get_message(timeout)

Paraiméadar

Cur síos

timeout

Roghnach. An t-am uasta, i milleasoicindí, le fanacht le teachtaireacht sula leantar ar aghaidh. Is é 1000 an réamhshocrú.

Sampla

Cód le haghaidh Róbat 1

# Press the screen to send a message to Robot 2
robot.screen.print("Robot 1")

while not robot.screen.pressing():
    wait(5, MSEC)

robot.link.send_message("Hello, Robot 2!")

Cód le haghaidh Róbat 2

# Display the message sent by Robot 1
robot.screen.print("Robot 2")
robot.screen.next_row()

while not robot.link.is_message_available():
    wait(5, MSEC)

message = robot.link.get_message()
robot.screen.print(message)

get_message_and_data#

Seolann get_message_and_data an chéad teachtaireacht téacs eile a fuarthas agus na huimhreacha ón scuaine teachtaireachtaí ar ais mar thupla. Bain úsáid as an modh seo ar an róbat glactha nuair a sheol an róbat nasctha téacs le huimhir amháin nó níos mó. Is é an t-ordú coitianta ná is_message_available a úsáid chun a sheiceáil an bhfuil teachtaireacht tagtha, ansin bain úsáid as get_message_and_data sula n-úsáidtear an téacs agus na huimhreacha a tugadh ar ais.

Úsáid send_message ar an róbat eile chun an téacs agus na huimhreacha a sheoladh le chéile.

Usage:
robot.link.get_message_and_data(timeout)

Paraiméadar

Cur síos

timeout

Roghnach. An t-am uasta, i milleasoicindí, le fanacht le teachtaireacht sula leantar ar aghaidh. Is é 1000 an réamhshocrú.

Sampla

Cód le haghaidh Róbat 1

# Continuously send the current heading to Robot 2
robot.screen.print("Robot 1")

while True:
    robot.link.send_message("heading", robot.inertial.get_heading())
    wait(50, MSEC)

Cód le haghaidh Róbat 2

# Turn to match Robot 1's heading
robot.screen.print("Robot 2")

while True:
    if robot.link.is_message_available():
        message, heading = robot.link.get_message_and_data()
        robot.turn_to(heading)

    wait(50, MSEC)

is_connected#

is_connected ar ais an bhfuil an róbat nasctha le róbat eile. Bain úsáid as an modh seo sula seoltar teachtaireachtaí nó sula bhfanann tú orthu má bhíonn ar an tionscadal a sheiceáil go bhfuil an nasc róbat go róbat réidh.

  • True — Tá an róbat nasctha le róbat eile.

  • False — Níl an róbat nasctha le róbat eile.

Usage:
robot.link.is_connected()

Paraiméadair

Cur síos

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

# Display whether the robot is connected
while True:
    robot.screen.clear_screen()
    robot.screen.set_cursor(1, 1)
    robot.screen.print(robot.link.is_connected())
    wait(50, MSEC)

is_message_available#

Tugann is_message_available ar ais an bhfuil teachtaireacht ag fanacht sa scuaine teachtaireachtaí. Bain úsáid as an modh seo roimh get_message nó get_message_and_data ionas nach ndéanfaidh an róbat glactha iarracht teachtaireacht a léamh ach amháin tar éis di teacht.

  • True — Tá teachtaireacht ar fáil le léamh.

  • False — Níl aon teachtaireachtaí ar fáil le léamh.

Usage:
robot.link.is_message_available()

Paraiméadair

Cur síos

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

Sampla

Cód le haghaidh Róbat 1

# Press the screen to send a message to Robot 2
robot.screen.print("Robot 1")

while not robot.screen.pressing():
    wait(5, MSEC)

robot.link.send_message("Hello, Robot 2!")

Cód le haghaidh Róbat 2

# Wait until a message is available, then display it
robot.screen.print("Robot 2")
robot.screen.next_row()

while not robot.link.is_message_available():
    wait(5, MSEC)

message = robot.link.get_message()
robot.screen.print(message)

get_name#

get_name seolann sé ainm an róbait nasctha ar ais. Úsáid an modh seo chun a thaispeáint cén róbat atá ceangailte sula seoltar nó sula nglactar teachtaireachtaí. Mura bhfuil aon róbat nasctha, seolann an modh seo None ar ais.

Usage:
robot.link.get_name()

Paraiméadair

Cur síos

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

# Display the name of the linked robot
robot.screen.print(robot.link.get_name())

Glaonna ar ais#

handle_message#

Cláraíonn handle_message feidhm a ritheann nuair a fhaigheann an róbat teachtaireacht téacs shonrach. Bain úsáid as an modh seo nuair ba chóir don róbat freagairt go huathoibríoch do theachtaireacht aitheanta seachas an scuaine teachtaireachtaí a sheiceáil i lúb. Sainmhínigh an fheidhm athghlaoite ar dtús, ansin cláraigh í le handle_message agus téacs an teachtaireachta le faire amach dó.

Usage:
robot.link.handle_message(callback, message)

Paraiméadar

Cur síos

callback

Feidhm atá sainmhínithe roimhe seo a ritheann nuair a bhíonn an teachtaireacht a fhaightear ag teacht le message.

message

An téacs le seiceáil a dhéanamh ar theachtaireachtaí isteach.

Sampla

Cód le haghaidh Róbat 1

# Press the screen to send "smile" to Robot 2
robot.screen.print("Robot 1")

while not robot.screen.pressing():
    wait(5, MSEC)

robot.link.send_message("smile")

Cód le haghaidh Róbat 2

# Show a happy emoji when Robot 1 sends "smile"
def robot_smile():
    robot.screen.show_emoji(HAPPY)

robot.link.handle_message(robot_smile, "smile")

while True:
    wait(50, MSEC)

connected#

Cláraíonn connected feidhm a ritheann nuair a bhíonn an róbat nasctha le róbat eile. Bain úsáid as an modh seo nuair ba chóir don tionscadal freagairt a luaithe a dhéantar an nasc idir róbat agus róbat. Sainmhínigh an fheidhm athghlaoite ar dtús, ansin cláraigh í le connected.

Usage:
robot.link.connected(callback, args)

Paraiméadar

Cur síos

callback

Feidhm atá sainmhínithe roimhe seo a ritheann nuair a bhíonn an róbat nasctha le róbat eile.

args

Roghnach. Tupla ina bhfuil argóintí le cur chuig an bhfeidhm athghlaoite. Féach Úsáid Feidhmeanna le Paraiméadair le haghaidh tuilleadh eolais.

# Show a happy emoji when connected
def robot_smile():
    robot.screen.show_emoji(HAPPY)

robot.link.connected(robot_smile)

disconnected#

disconnected cláraíonn feidhm a ritheann nuair nach bhfuil an róbat nasctha le róbat eile a thuilleadh. Bain úsáid as an modh seo nuair ba chóir don tionscadal freagairt a luaithe a chailltear an nasc idir róbat agus róbat. Sainmhínigh an fheidhm athghlaoite ar dtús, ansin cláraigh í le disconnected.

Usage:
robot.link.disconnected(callback, args)

Paraiméadar

Cur síos

callback

Feidhm atá sainmhínithe roimhe seo a ritheann nuair nach bhfuil an róbat nasctha le róbat eile a thuilleadh.

args

Roghnach. Tupla ina bhfuil argóintí le cur chuig an bhfeidhm athghlaoite. Féach Úsáid Feidhmeanna le Paraiméadair le haghaidh tuilleadh eolais.

# Show a sad emoji when disconnected
def robot_sad():
    robot.screen.show_emoji(SAD)

robot.link.disconnected(robot_sad)