സന്ദേശം#
ആമുഖം#
ഒരു പ്രോജക്റ്റ് സമയത്ത് ആശയവിനിമയം നടത്താൻ രണ്ട് VEX AIM കോഡിംഗ് റോബോട്ടുകളെ ബന്ധിപ്പിക്കാൻ കഴിയും. സന്ദേശ രീതികൾ ഉപയോഗിച്ച് ഒരു റോബോട്ടിനെ മറ്റൊരു റോബോട്ടിന് സന്ദേശം അയയ്ക്കാം. ഒരു സന്ദേശത്തിൽ സ്വന്തമായി ഒരു വാചകമോ മൂന്ന് അക്കങ്ങൾ വരെയുള്ള വാചകമോ ഉൾപ്പെടുത്താം.
സ്വീകരിക്കുന്ന സന്ദേശങ്ങൾ ആദ്യം വരുന്നതും ആദ്യം പുറത്തുവരുന്നതുമായ (FIFO) ക്യൂവിലാണ് സൂക്ഷിക്കുന്നത്. അതായത് ആദ്യം ലഭിക്കുന്ന സന്ദേശം ആദ്യം വായിക്കപ്പെടും.
ഒരു സന്ദേശം വായിക്കാൻ തയ്യാറാണോ എന്ന് പരിശോധിക്കാൻ is_message_available ഉപയോഗിക്കുക. തുടർന്ന് അടുത്ത ടെക്സ്റ്റ് സന്ദേശം വായിക്കാൻ get_message ഉപയോഗിക്കുക. സന്ദേശത്തിൽ അക്കങ്ങളും ഉൾപ്പെടുത്തിയിട്ടുണ്ടെങ്കിൽ, വാചകവും അക്കങ്ങളും ഒരുമിച്ച് വായിക്കാൻ get_message_and_data ഉപയോഗിക്കുക.
കുറിപ്പ്: സന്ദേശങ്ങൾ അയയ്ക്കാനും സ്വീകരിക്കാനും, രണ്ട് റോബോട്ടുകളും ലിങ്ക് ചെയ്തിരിക്കണം, കൂടാതെ രണ്ട് റോബോട്ടുകളും സന്ദേശ രീതികൾ ഉപയോഗിക്കുന്ന പ്രോജക്ടുകൾ പ്രവർത്തിപ്പിക്കുന്നവയായിരിക്കണം.
എല്ലാ രീതികളുടെയും ഒരു ലിസ്റ്റ് താഴെ കൊടുക്കുന്നു:
പ്രവർത്തനം — റോബോട്ടുകൾക്കിടയിൽ സന്ദേശങ്ങൾ അയയ്ക്കുക.
send_message— ലിങ്ക് ചെയ്ത റോബോട്ടിലേക്ക് ടെക്സ്റ്റും മൂന്ന് നമ്പറുകളും അയയ്ക്കുന്നു.
ഗെറ്ററുകൾ — സന്ദേശങ്ങൾ വായിക്കുകയോ കണക്ഷൻ നില പരിശോധിക്കുകയോ ചെയ്യുക.
get_message— അടുത്തതായി ലഭിച്ച വാചക സന്ദേശം തിരികെ നൽകുന്നു.get_message_and_data— അടുത്തതായി ലഭിച്ച വാചക സന്ദേശവും നമ്പറുകളും തിരികെ നൽകുന്നു.is_connected— റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ലിങ്ക് ചെയ്തിട്ടുണ്ടോ എന്ന് നൽകുന്നു.is_message_available— ഒരു സന്ദേശം വായിക്കാൻ ലഭ്യമാണോ എന്ന് നൽകുന്നു.get_name— ലിങ്ക് ചെയ്ത റോബോട്ടിന്റെ പേര് നൽകുന്നു.
കോൾബാക്കുകൾ — സന്ദേശ ഇവന്റുകൾ സംഭവിക്കുമ്പോൾ ഫംഗ്ഷനുകൾ പ്രവർത്തിപ്പിക്കുക.
handle_message— ഒരു പ്രത്യേക സന്ദേശം ലഭിക്കുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു.connected— റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ലിങ്ക് ചെയ്യുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു.disconnected— റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ബന്ധിപ്പിച്ചിട്ടില്ലാത്തപ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു.
ആക്ഷൻ#
send_message#
send_message ലിങ്ക് ചെയ്ത റോബോട്ടിലേക്ക് ടെക്സ്റ്റും മൂന്ന് നമ്പറുകളും വരെ അയയ്ക്കുന്നു. ഒരു റോബോട്ടിന് ഒരു കമാൻഡ്, സിഗ്നൽ അല്ലെങ്കിൽ ഹ്രസ്വ വിവരങ്ങൾ ലഭിക്കേണ്ടിവരുമ്പോൾ മറ്റൊരു റോബോട്ടിൽ ഈ രീതി ഉപയോഗിക്കുക. സന്ദേശം സ്വന്തമായി മതിയാകുമ്പോൾ ടെക്സ്റ്റ് സ്വയം അയയ്ക്കുക. റോബോട്ടിന്റെ നിലവിലെ ഹെഡിംഗ് മൂല്യമുള്ള “heading” അയയ്ക്കുന്നത് പോലുള്ള അനുബന്ധ മൂല്യങ്ങൾ സന്ദേശത്തിന് ആവശ്യമുള്ളപ്പോൾ നമ്പറുകൾ ചേർക്കുക.
സ്വീകരിക്കുന്ന റോബോട്ടിൽ, ഒരു സന്ദേശം എത്തിയോ എന്ന് പരിശോധിക്കാൻ is_message_available ഉപയോഗിക്കുക. തുടർന്ന് ഒരു ടെക്സ്റ്റ് മാത്രമുള്ള സന്ദേശത്തിന് get_message ഉപയോഗിക്കുക, അല്ലെങ്കിൽ നമ്പറുകൾ ഉൾപ്പെടുന്ന ഒരു സന്ദേശത്തിന് get_message_and_data ഉപയോഗിക്കുക.
Usage:
robot.link.send_message(message, arg1, arg2, arg3)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
ലിങ്ക് ചെയ്ത റോബോട്ടിന് അയയ്ക്കേണ്ട വാചകം. |
|
ഓപ്ഷണൽ. സന്ദേശത്തോടൊപ്പം അയയ്ക്കേണ്ട ഒരു നമ്പർ. |
|
ഓപ്ഷണൽ. സന്ദേശത്തോടൊപ്പം അയയ്ക്കാൻ രണ്ടാമത്തെ നമ്പർ. |
|
ഓപ്ഷണൽ. സന്ദേശത്തോടൊപ്പം അയയ്ക്കേണ്ട മൂന്നാമത്തെ നമ്പർ. |
ഉദാഹരണം
Code for Robot 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")
Code for Robot 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)
ഗെറ്ററുകൾ#
get_message#
get_message സന്ദേശ ക്യൂവിൽ നിന്ന് അടുത്തതായി ലഭിച്ച വാചക സന്ദേശം തിരികെ നൽകുന്നു. ലിങ്ക് ചെയ്ത റോബോട്ട് ഒരു വാചകം മാത്രമുള്ള സന്ദേശം അയയ്ക്കുമ്പോൾ സ്വീകരിക്കുന്ന റോബോട്ടിൽ ഈ രീതി ഉപയോഗിക്കുക. ഒരു സന്ദേശം എത്തിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാൻ is_message_available ഉപയോഗിക്കുക, തുടർന്ന് മറ്റൊരു രീതിയിൽ തിരികെ ലഭിച്ച വാചകം പ്രദർശിപ്പിക്കുന്നതിനോ താരതമ്യം ചെയ്യുന്നതിനോ ഉപയോഗിക്കുന്നതിനോ മുമ്പ് get_message ഉപയോഗിക്കുക എന്നതാണ് ഒരു സാധാരണ ക്രമം.
ടെക്സ്റ്റ് മാത്രമുള്ള സന്ദേശം അയയ്ക്കാൻ മറ്റേ റോബോട്ടിൽ send_message ഉപയോഗിക്കുക.
Usage:
robot.link.get_message(timeout)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
ഓപ്ഷണൽ. തുടരുന്നതിന് മുമ്പ് ഒരു സന്ദേശത്തിനായി കാത്തിരിക്കാനുള്ള പരമാവധി സമയം, മില്ലിസെക്കൻഡുകളിൽ. സ്ഥിരസ്ഥിതി |
ഉദാഹരണം
Code for Robot 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!")
Code for Robot 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#
get_message_and_data അടുത്തതായി ലഭിച്ച ടെക്സ്റ്റ് സന്ദേശവും സന്ദേശ ക്യൂവിൽ നിന്നുള്ള നമ്പറുകളും ഒരു ട്യൂപ്പിൾ ആയി നൽകുന്നു. ലിങ്ക് ചെയ്ത റോബോട്ട് ഒന്നോ അതിലധികമോ നമ്പറുകളുള്ള ടെക്സ്റ്റ് അയയ്ക്കുമ്പോൾ സ്വീകരിക്കുന്ന റോബോട്ടിൽ ഈ രീതി ഉപയോഗിക്കുക. ഒരു സന്ദേശം എത്തിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാൻ is_message_available ഉപയോഗിക്കുക, തുടർന്ന് തിരികെ ലഭിച്ച ടെക്സ്റ്റും നമ്പറുകളും ഉപയോഗിക്കുന്നതിന് മുമ്പ് get_message_and_data ഉപയോഗിക്കുക എന്നതാണ് ഒരു സാധാരണ ക്രമം.
ടെക്സ്റ്റും നമ്പറുകളും ഒരുമിച്ച് അയയ്ക്കാൻ മറ്റേ റോബോട്ടിൽ send_message ഉപയോഗിക്കുക.
Usage:
robot.link.get_message_and_data(timeout)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
ഓപ്ഷണൽ. തുടരുന്നതിന് മുമ്പ് ഒരു സന്ദേശത്തിനായി കാത്തിരിക്കാനുള്ള പരമാവധി സമയം, മില്ലിസെക്കൻഡുകളിൽ. സ്ഥിരസ്ഥിതി |
ഉദാഹരണം
Code for 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)
Code for 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)
is_connected#
റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ലിങ്ക് ചെയ്തിട്ടുണ്ടോ എന്ന് is_connected നൽകുന്നു. റോബോട്ട്-ടു-റോബോട്ട് കണക്ഷൻ തയ്യാറാണോ എന്ന് പ്രോജക്റ്റിന് പരിശോധിക്കണമെങ്കിൽ സന്ദേശങ്ങൾ അയയ്ക്കുന്നതിനോ കാത്തിരിക്കുന്നതിനോ മുമ്പ് ഈ രീതി ഉപയോഗിക്കുക.
True— റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു.False— റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ബന്ധിപ്പിച്ചിട്ടില്ല.
Usage:
robot.link.is_connected()
പാരാമീറ്ററുകൾ |
വിവരണം |
|---|---|
ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല. |
# 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#
is_message_available ഒരു സന്ദേശം സന്ദേശ ക്യൂവിൽ കാത്തിരിക്കുന്നുണ്ടോ എന്ന് നൽകുന്നു. get_message അല്ലെങ്കിൽ get_message_and_data എന്നിവയ്ക്ക് മുമ്പ് ഈ രീതി ഉപയോഗിക്കുക, അങ്ങനെ സ്വീകരിക്കുന്ന റോബോട്ട് ഒരു സന്ദേശം വന്നതിനുശേഷം മാത്രമേ വായിക്കാൻ ശ്രമിക്കൂ.
True— വായിക്കാൻ ഒരു സന്ദേശം ലഭ്യമാണ്.False— വായിക്കാൻ സന്ദേശങ്ങളൊന്നും ലഭ്യമല്ല.
Usage:
robot.link.is_message_available()
പാരാമീറ്ററുകൾ |
വിവരണം |
|---|---|
ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല. |
ഉദാഹരണം
Code for Robot 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!")
Code for Robot 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 ലിങ്ക് ചെയ്ത റോബോട്ടിന്റെ പേര് നൽകുന്നു. സന്ദേശങ്ങൾ അയയ്ക്കുന്നതിനോ സ്വീകരിക്കുന്നതിനോ മുമ്പ് ഏത് റോബോട്ടാണ് ബന്ധിപ്പിച്ചിരിക്കുന്നതെന്ന് കാണിക്കാൻ ഈ രീതി ഉപയോഗിക്കുക. ഒരു റോബോട്ടും ലിങ്ക് ചെയ്തിട്ടില്ലെങ്കിൽ, ഈ രീതി None നൽകുന്നു.
Usage:
robot.link.get_name()
പാരാമീറ്ററുകൾ |
വിവരണം |
|---|---|
ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല. |
# Display the name of the linked robot
robot.screen.print(robot.link.get_name())
കോൾബാക്കുകൾ#
handle_message#
റോബോട്ടിന് ഒരു പ്രത്യേക വാചക സന്ദേശം ലഭിക്കുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു ഫംഗ്ഷൻ handle_message രജിസ്റ്റർ ചെയ്യുന്നു. ഒരു ലൂപ്പിൽ സന്ദേശ ക്യൂ പരിശോധിക്കുന്നതിനുപകരം അറിയപ്പെടുന്ന ഒരു സന്ദേശത്തോട് റോബോട്ട് യാന്ത്രികമായി പ്രതികരിക്കേണ്ട സമയത്ത് ഈ രീതി ഉപയോഗിക്കുക. ആദ്യം കോൾബാക്ക് ഫംഗ്ഷൻ നിർവചിക്കുക, തുടർന്ന് handle_message ഉം ശ്രദ്ധിക്കേണ്ട സന്ദേശ വാചകവും ഉപയോഗിച്ച് അത് രജിസ്റ്റർ ചെയ്യുക.
Usage:
robot.link.handle_message(callback, message)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
സ്വീകരിച്ച സന്ദേശം |
|
വരുന്ന സന്ദേശങ്ങൾ പരിശോധിക്കേണ്ട വാചകം. |
ഉദാഹരണം
Code for Robot 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")
Code for Robot 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#
റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ലിങ്ക് ചെയ്യുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു ഫംഗ്ഷൻ connected രജിസ്റ്റർ ചെയ്യുന്നു. റോബോട്ട്-ടു-റോബോട്ട് കണക്ഷൻ ഉണ്ടാക്കിയ ഉടൻ പ്രോജക്റ്റ് പ്രതികരിക്കേണ്ട സമയത്ത് ഈ രീതി ഉപയോഗിക്കുക. ആദ്യം കോൾബാക്ക് ഫംഗ്ഷൻ നിർവചിക്കുക, തുടർന്ന് connected ഉപയോഗിച്ച് അത് രജിസ്റ്റർ ചെയ്യുക.
Usage:
robot.link.connected(callback, args)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ബന്ധിപ്പിക്കുമ്പോൾ പ്രവർത്തിക്കുന്ന, മുമ്പ് നിർവചിക്കപ്പെട്ട ഒരു ഫംഗ്ഷൻ. |
|
ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്നു കാണുക. |
# Show a happy emoji when connected
def robot_smile():
robot.screen.show_emoji(HAPPY)
robot.link.connected(robot_smile)
disconnected#
disconnected റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ലിങ്ക് ചെയ്തിട്ടില്ലാത്തപ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു. റോബോട്ട്-ടു-റോബോട്ട് കണക്ഷൻ നഷ്ടപ്പെട്ടാലുടൻ പ്രോജക്റ്റ് പ്രതികരിക്കേണ്ട സമയത്ത് ഈ രീതി ഉപയോഗിക്കുക. ആദ്യം കോൾബാക്ക് ഫംഗ്ഷൻ നിർവചിക്കുക, തുടർന്ന് disconnected ഉപയോഗിച്ച് അത് രജിസ്റ്റർ ചെയ്യുക.
Usage:
robot.link.disconnected(callback, args)
പാരാമീറ്റർ |
വിവരണം |
|---|---|
|
റോബോട്ട് മറ്റൊരു റോബോട്ടുമായി ബന്ധിപ്പിച്ചിട്ടില്ലാത്തപ്പോൾ പ്രവർത്തിക്കുന്ന, മുമ്പ് നിർവചിക്കപ്പെട്ട ഒരു ഫംഗ്ഷൻ. |
|
ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്നു കാണുക. |
# Show a sad emoji when disconnected
def robot_sad():
robot.screen.show_emoji(SAD)
robot.link.disconnected(robot_sad)