Imeachtaí#
Réamhrá#
Ligeann imeachtaí duit feidhmeanna a rith go comhthreomhar trí úsáid a bhaint as réada imeachtaí. In ionad feidhmeanna nó snáitheanna a ghlaoch ceann i ndiaidh a chéile, ligeann imeachtaí duit feidhmeanna a chlárú agus ansin iad a spreagadh go léir ag an am céanna. Ritheann gach feidhm chláraithe ina snáithe féin, ionas gur féidir le do róbat roinnt rudaí a dhéanamh—cosúil le TouchLEDs a bhéiceadh agus tiomáint—ag an am céanna.
Seo thíos liosta de na modhanna agus na tógálaithe atá ar fáil:
Event– Cruthaíonn sé réad imeachta nua.broadcast– Spreagann sé seo gach feidhm chláraithe i réad imeachta chun rith go comhthreomhar.broadcast_and_wait– Spreagann sé gach feidhm chláraithe i réad imeachta agus fanann sé go mbeidh siad críochnaithe sula leanann sé ar aghaidh.event– Cláraíonn sé feidhm don réad imeachta, le hargóintí más mian leat.
Create an Event Object#
Cruthaíonn Event réad imeachta a bhainistíonn forghníomhú feidhme i snáitheanna ar leithligh.
Usage:
Event()
Paraiméadar |
Cur síos |
|---|---|
Níl aon pharaiméadair ag an tógálaí seo. |
def dash_lines():
# Move the pen up and down
while True:
pen.move(DOWN)
wait(0.5, SECONDS)
pen.move(UP)
wait(0.5, SECONDS)
def main():
# Set the event
move_event = Event()
move_event(dash_lines)
# Draw the dash line while driving forward
move_event.broadcast()
drivetrain.drive_for(FORWARD, 1000, MM)
# VR threads — Do not delete
vr_thread(main)
Broadcast#
broadcast spreagann imeacht, ag tosú gach feidhm chláraithe i snáitheanna ar leithligh. Ní chuireann an modh seo sos ar fhorghníomhú aon fheidhmeanna ina dhiaidh sin.
Usage:
my_event.broadcast()
Paraiméadar |
Cur síos |
|---|---|
|
Ainm an réada imeachta a cruthaíodh roimhe seo. |
def dash_lines():
# Move the pen up and down
while True:
pen.move(DOWN)
wait(0.5, SECONDS)
pen.move(UP)
wait(0.5, SECONDS)
def main():
# Set the event
move_event = Event()
move_event(dash_lines)
# Draw the dash line while driving forward
move_event.broadcast()
drivetrain.drive_for(FORWARD, 1000, MM)
# VR threads — Do not delete
vr_thread(main)
Broadcast and wait#
broadcast_and_wait Tosaíonn imeacht ach fanann sé go mbeidh na feidhmeanna cláraithe go léir críochnaithe sula leanann sé ar aghaidh le feidhmeanna ina dhiaidh sin.
Usage:
my_event.broadcast_and_wait()
Paraiméadar |
Cur síos |
|---|---|
|
Ainm an réada imeachta a cruthaíodh roimhe seo. |
def move_and_turn():
# Drive forward and turn
drivetrain.drive_for(FORWARD, 150, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
def main():
# Wait for the event to finish after 3 seconds
move_event = Event()
move_event(move_and_turn)
while True:
if brain.timer_time(SECONDS) > 3:
move_event.broadcast_and_wait()
break
wait(5, MSEC)
brain.print("Movement done.")
# VR threads — Do not delete
vr_thread(main)
Register Functions to an Event#
Nuair a chláraíonn tú feidhm le himeacht, déanfar í a fhorghníomhú i snáithe ar leith nuair a chraoltar an t-imeacht.
Usage:
event(callback, args)
Paraiméadar |
Cur síos |
|---|---|
|
Ainm an réada imeachta a cruthaíodh roimhe seo. |
|
Feidhm atá sainmhínithe roimhe seo le forghníomhú nuair a chraoltar an ócáid. |
def dash_lines():
# Move the pen up and down
while True:
pen.move(DOWN)
wait(0.5, SECONDS)
pen.move(UP)
wait(0.5, SECONDS)
def main():
# Set and call the event and start driving
move_event = Event()
move_event(dash_lines)
move_event.broadcast()
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)