कार्यक्रम#

परिचय#

इवेंट्स आपको फंक्शन्स को समानांतर रूप से चलाने की सुविधा देते हैं। फंक्शन्स को क्रमानुसार कॉल करने के बजाय, आप एक इवेंट में कई फंक्शन्स को रजिस्टर कर सकते हैं और उन सभी को एक साथ ट्रिगर कर सकते हैं। प्रत्येक रजिस्टर्ड फंक्शन अपने स्वयं के थ्रेड में चलता है, जिससे आपका रोबोट एक साथ कई कार्य कर सकता है—जैसे कि चलते समय स्क्रीन पर मान प्रदर्शित करना।

किसी इवेंट को बनाने और फिर उसका उपयोग करने के लिए, इन चरणों का क्रमवार पालन करें:

  1. Event के साथ इवेंट बनाएं।

  2. जब Event प्रसारित होता है तो ट्रिगर करने के लिए एक फ़ंक्शन को रजिस्टर करें event ऑब्जेक्ट को फ़ंक्शन को तर्क के रूप में कॉल करके।

  3. Broadcast an Event:

    • broadcast – एक इवेंट ऑब्जेक्ट में सभी पंजीकृत कार्यों को एक साथ चलाने के लिए ट्रिगर करता है।

    • broadcast_and_wait – एक इवेंट ऑब्जेक्ट में सभी पंजीकृत कार्यों को ट्रिगर करता है और जारी रखने से पहले उनके समाप्त होने की प्रतीक्षा करता है।

एक इवेंट बनाएं#

Event एक इवेंट ऑब्जेक्ट बनाता है जो अलग-अलग थ्रेड्स में फ़ंक्शन निष्पादन का प्रबंधन करता है।

Usage:
Event()

पैरामीटर

विवरण

इस कंस्ट्रक्टर में कोई पैरामीटर नहीं है।

# Build Used: Super Code Base 2.0
def move_square():
    for index in range(4):
        drivetrain.drive_for(FORWARD, 150)
        drivetrain.turn_for(RIGHT, 90)

def main():
    # Creating the move_event Event
    move_event = Event()
    move_event(move_square)
    move_event.broadcast()
    bumper.set_color(GREEN)

# Start threads — Do not delete
start_thread(main)

किसी कार्यक्रम में कार्यों को पंजीकृत करें#

जब आप किसी फ़ंक्शन को किसी इवेंट के लिए रजिस्टर करते हैं, तो इवेंट के ब्रॉडकास्ट होने पर वह एक अलग थ्रेड में एग्जीक्यूट होगा।

Usage:
event(callback, args)

पैरामीटर

विवरण

event

पहले से बनाए गए इवेंट ऑब्जेक्ट का नाम।

callback

किसी घटना के प्रसारित होने पर निष्पादित होने वाला पूर्व-परिभाषित फ़ंक्शन।

args

वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्कों का एक टपल।

# Build Used: Super Code Base 2.0
def move_square():
    for index in range(4):
        drivetrain.drive_for(FORWARD, 150)
        drivetrain.turn_for(RIGHT, 90)

def main():
    move_event = Event()
    # Register the move_square function to the move_event Event
    move_event(move_square)
    move_event.broadcast()
    bumper.set_color(GREEN)

# Start threads — Do not delete
start_thread(main)

किसी कार्यक्रम का प्रसारण करें#

broadcast#

broadcast एक इवेंट को ट्रिगर करता है, जिससे सभी पंजीकृत फ़ंक्शन अलग-अलग थ्रेड्स में शुरू हो जाते हैं। यह विधि बाद के किसी भी कोड के निष्पादन को नहीं रोकती है।

Usage:
event.broadcast()

पैरामीटर

विवरण

event

पहले से बनाए गए इवेंट ऑब्जेक्ट का नाम।

# Build Used: Super Code Base 2.0
def move_square():
    for index in range(4):
        drivetrain.drive_for(FORWARD, 150)
        drivetrain.turn_for(RIGHT, 90)

def main():
    move_event = Event()
    move_event(move_square)
    # Broadcasting the move_event Event
    move_event.broadcast()
    bumper.set_color(GREEN)

# Start threads — Do not delete
start_thread(main)

broadcast_and_wait#

broadcast_and_wait एक इवेंट शुरू करता है लेकिन बाद के कार्यों के साथ जारी रखने से पहले सभी पंजीकृत कार्यों के समाप्त होने की प्रतीक्षा करता है।

Usage:
event.broadcast_and_wait()

पैरामीटर

विवरण

event

पहले से बनाए गए इवेंट ऑब्जेक्ट का नाम।

# Build Used: Super Code Base 2.0
def move_square():
    for index in range(4):
        drivetrain.drive_for(FORWARD, 150)
        drivetrain.turn_for(RIGHT, 90)

def main():
    # Set up and call the move_square event
    move_event = Event()
    move_event(move_square)
    # Broadcast the move_event Event and wait
    move_event.broadcast_and_wait()
    bumper.set_color(GREEN)

# Start threads — Do not delete
start_thread(main)