संदेश#
परिचय#
दो 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")
रोबोट 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!")
रोबोट 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)
रोबोट 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!")
रोबोट 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")
रोबोट 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)