الفعاليات#
مقدمة#
تتيح لك الأحداث تشغيل الدوال بالتوازي. فبدلاً من استدعاء الدوال بالتتابع، يمكنك تسجيل عدة دوال في حدث واحد وتشغيلها جميعاً دفعة واحدة. تعمل كل دالة مسجلة في سلسلة عمليات خاصة بها، مما يمكّن الروبوت من أداء مهام متعددة في وقت واحد، مثل عرض القيم على الشاشة أثناء القيادة.
لإنشاء حدث واستخدامه، اتبع الخطوات التالية بالترتيب:
أنشئ الحدث باستخدام
Event.قم بتسجيل دالة لتشغيلها عند بث
Eventعن طريق استدعاءeventobject مع الدالة كوسيط.Broadcast an
Event:broadcast– يقوم بتشغيل جميع الوظائف المسجلة في كائن الحدث بشكل متزامن.broadcast_and_wait– يقوم بتشغيل جميع الوظائف المسجلة في كائن الحدث وينتظر حتى تنتهي قبل المتابعة.
إنشاء حدث#
Event بإنشاء كائن حدث يدير تنفيذ الوظائف في سلاسل عمليات منفصلة.
Usage:
Event()
حدود |
وصف |
|---|---|
لا يحتوي هذا المُنشئ على أي معلمات. |
def move_square():
for index in range(4):
robot.drive_for(FORWARD, 1, STEPS)
robot.turn_for(RIGHT, 90)
# Creating the move_event Event
move_event = Event()
move_event(move_square)
move_event.broadcast()
robot.led.glow(GREEN)
تسجيل الوظائف في حدث#
عند تسجيل دالة لحدث ما، سيتم تنفيذها في سلسلة رسائل منفصلة عند بث الحدث.
Usage:
event(callback, args)
حدود |
وصف |
|---|---|
|
اسم كائن الحدث الذي تم إنشاؤه مسبقًا. |
|
دالة مُعرَّفة مسبقاً لتنفيذها عند بث الحدث. |
|
Optional. A tuple of arguments to pass to the callback function. |
def move_square():
for index in range(4):
robot.drive_for(FORWARD, 1, STEPS)
robot.turn_for(RIGHT, 90)
move_event = Event()
# Register the move_square function to the move_event Event
move_event(move_square)
move_event.broadcast()
robot.led.glow(GREEN)
بث حدث#
broadcast#
يؤدي بث broadcast حدث، مما يبدأ تشغيل جميع الدوال المسجلة في سلاسل عمليات منفصلة. لا توقف هذه الطريقة تنفيذ أي كود لاحق.
Usage:
event.broadcast()
حدود |
وصف |
|---|---|
|
اسم كائن الحدث الذي تم إنشاؤه مسبقًا. |
def move_square():
for index in range(4):
robot.drive_for(FORWARD, 1, STEPS)
robot.turn_for(RIGHT, 90)
move_event = Event()
move_event(move_square)
# Broadcasting the move_event Event
move_event.broadcast()
robot.led.glow(GREEN)
broadcast_and_wait#
broadcast_and_wait يبدأ حدثًا ولكنه ينتظر حتى تنتهي جميع الوظائف المسجلة قبل المتابعة مع الوظائف اللاحقة.
Usage:
event.broadcast_and_wait()
حدود |
وصف |
|---|---|
|
اسم كائن الحدث الذي تم إنشاؤه مسبقًا. |
def move_square():
for index in range(4):
robot.drive_for(FORWARD, 1, STEPS)
robot.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()
robot.led.glow(GREEN)