الفعاليات#

مقدمة#

تتيح لك الأحداث تشغيل الدوال بالتوازي. فبدلاً من استدعاء الدوال بالتتابع، يمكنك تسجيل عدة دوال في حدث واحد وتشغيلها جميعاً دفعة واحدة. تعمل كل دالة مسجلة في سلسلة عمليات خاصة بها، مما يمكّن الروبوت من أداء مهام متعددة في وقت واحد، مثل عرض القيم على الشاشة أثناء القيادة.

لإنشاء حدث واستخدامه، اتبع الخطوات التالية بالترتيب:

  1. أنشئ الحدث باستخدام Event.

  2. قم بتسجيل دالة لتشغيلها عند بث Event عن طريق استدعاء event object مع الدالة كوسيط.

  3. Broadcast an Event:

    • broadcast – يقوم بتشغيل جميع الوظائف المسجلة في كائن الحدث بشكل متزامن.

    • broadcast_and_wait – يقوم بتشغيل جميع الوظائف المسجلة في كائن الحدث وينتظر حتى تنتهي قبل المتابعة.

إنشاء حدث#

Event بإنشاء كائن حدث يدير تنفيذ الوظائف في سلاسل عمليات منفصلة.

Usage:
Event()

المعلمة

وصف

لا يحتوي هذا المُنشئ على أي معلمات.

def move_y():
    for index in range(4):
        arm.move_inc(0, 100, 0)

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

# Register move_square to move_event
move_event(move_y)

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

تسجيل الوظائف في حدث#

عند تسجيل دالة لحدث ما، سيتم تنفيذها في سلسلة رسائل منفصلة عند بث الحدث.

Usage:
event(callback, args)

المعلمة

وصف

event

اسم كائن الحدث الذي تم إنشاؤه مسبقًا.

callback

دالة مُعرَّفة مسبقاً لتنفيذها عند بث الحدث.

args

Optional. A tuple of arguments to pass to the callback function.

def move_y():
    for index in range(4):
        arm.move_inc(0, 100, 0)

# Creating the move_event Event
move_event = Event()

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

# 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_y():
    for index in range(4):
        arm.move_inc(0, 100, 0)

move_event = Event()
move_event(move_y)
# Broadcasting the move_event Event
move_event.broadcast()
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)

broadcast_and_wait#

broadcast_and_wait يبدأ حدثًا ولكنه ينتظر حتى تنتهي جميع الوظائف المسجلة قبل المتابعة مع الوظائف اللاحقة.

Usage:
event.broadcast_and_wait()

المعلمة

وصف

event

اسم كائن الحدث الذي تم إنشاؤه مسبقًا.

def move_y():
    for index in range(4):
        arm.move_inc(0, 100, 0)

# Set up and call the move_square event
move_event = Event()
move_event(move_y)
# Broadcast the move_event Event and wait
move_event.broadcast_and_wait()
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)