ইভেন্টগুলি#

ভূমিকা#

ইভেন্ট আপনাকে ফাংশনগুলোকে সমান্তরালভাবে চালানোর সুযোগ দেয়। ফাংশনগুলোকে ক্রমানুসারে কল করার পরিবর্তে, আপনি একটি ইভেন্টে একাধিক ফাংশন রেজিস্টার করে সেগুলোকে একসাথে ট্রিগার করতে পারেন। প্রতিটি রেজিস্টার করা ফাংশন তার নিজস্ব থ্রেডে চলে, যা আপনার রোবটকে একই সাথে একাধিক কাজ করতে সক্ষম করে—যেমন গাড়ি চালানোর সময় স্ক্রিনে মান প্রদর্শন করা।

একটি ইভেন্ট তৈরি ও ব্যবহার করার জন্য, ক্রমানুসারে এই ধাপগুলো অনুসরণ করুন:

  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

ঐচ্ছিক। কলব্যাক ফাংশনে পাঠানোর জন্য আর্গুমেন্টের একটি tuple।

# 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)