ইভেন্টগুলি#

ভূমিকা#

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

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

  1. Event দিয়ে ইভেন্টটি তৈরি করুন।

  2. ফাংশনটিকে আর্গুমেন্ট হিসেবে দিয়ে Event অবজেক্ট কল করে event সম্প্রচারিত হলে ট্রিগার করার জন্য একটি ফাংশন নিবন্ধন করুন।

  3. Broadcast an Event:

    • broadcast – একটি ইভেন্ট অবজেক্টে নিবন্ধিত সমস্ত ফাংশনকে একযোগে চালানোর জন্য ট্রিগার করে।

    • broadcast_and_wait – একটি ইভেন্ট অবজেক্টে নিবন্ধিত সমস্ত ফাংশন ট্রিগার করে এবং চালিয়ে যাওয়ার আগে সেগুলি শেষ হওয়ার জন্য অপেক্ষা করে।

একটি ইভেন্ট তৈরি করুন#

Event একটি ইভেন্ট অবজেক্ট তৈরি করে যা পৃথক থ্রেডে ফাংশন নির্বাহ পরিচালনা করে।

Usage:
Event()

প্যারামিটার

বর্ণনা

এই কনস্ট্রাক্টরের কোনো প্যারামিটার নেই।

def move_square():
    for index in range(4):
        drivetrain.drive_for(FORWARD, 150)
        drivetrain.turn_for(RIGHT, 90)

# *** Creating the move_event Event ***
move_event = Event()

# Register move_square to move_event
move_event(move_square)

# Call all functions registered to move_event
move_event.broadcast()

একটি ইভেন্টে ফাংশন নিবন্ধন করুন#

যখন আপনি কোনো ইভেন্টে একটি ফাংশন রেজিস্টার করেন, তখন ইভেন্টটি ব্রডকাস্ট হলে সেটি একটি আলাদা থ্রেডে এক্সিকিউট হবে।

Usage:
event(callback, args)

প্যারামিটার

বর্ণনা

event

পূর্বে তৈরি করা ইভেন্ট অবজেক্টটির নাম।

callback

ইভেন্টটি সম্প্রচারিত হলে কার্যকর করার জন্য পূর্বে সংজ্ঞায়িত একটি ফাংশন।

args

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

def move_square():
    for index in range(4):
        drivetrain.drive_for(FORWARD, 150)
        drivetrain.turn_for(RIGHT, 90)

# Creating the move_event Event
move_event = Event()

# *** Register move_square to move_event ***
move_event(move_square)

# Call all functions registered to move_event
move_event.broadcast()

একটি ইভেন্ট সম্প্রচার করুন#

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)

move_event = Event()
move_event(move_square)
# Broadcasting the move_event Event
move_event.broadcast()
optical_sensor.set_light_power(100, PERCENT)

broadcast_and_wait#

broadcast_and_wait একটি ইভেন্ট শুরু করে, কিন্তু পরবর্তী ফাংশনগুলিতে যাওয়ার আগে সমস্ত নিবন্ধিত ফাংশন শেষ হওয়ার জন্য অপেক্ষা করে।

Usage:
event.broadcast_and_wait()

প্যারামিটার

বর্ণনা

event

পূর্বে তৈরি করা ইভেন্ট অবজেক্টটির নাম।

def move_square():
    for index in range(4):
        drivetrain.drive_for(FORWARD, 150)
        drivetrain.turn_for(RIGHT, 90)

# 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()
optical_sensor.set_light_power(100, PERCENT)