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

event

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

event

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

event

Ainm an réada imeachta a cruthaíodh roimhe seo.

callback

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)