Vītnes#
Ievads#
Pavedi ļauj robotam vienlaikus izpildīt vairākus uzdevumus vienas programmas ietvaros. Tie nodrošina vairākuzdevumu veikšanu, ļaujot robotam vienlaikus veikt neatkarīgas darbības.
Note: You must first define a function to use it with a thread.
Konstruktors — izveidojiet un sāciet jaunus pavedienus.
Threadpavediens — Sāk jaunu pavedienu, kas paralēli galvenajai programmai palaiž norādīto funkciju.
Darbība — kontrolēt darbojošos pavedienus.
stop— Manuāli aptur pavedienu, kas ir noderīgi fona darbību apturēšanai.
Konstruktors#
Thread#
Thread pavediens izveido un sāk pavedienu. Izveidojot pavedienu, varat tam piešķirt nosaukumu, lai apturētu tā darbību, kad tas vairs nav nepieciešams.
Lietojums:
my_thread = Thread(my_function)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Jaunā pavediena nosaukums. |
|
Iepriekš definētas funkcijas nosaukums. |
Note: A function must always be defined before it is called.
# Drive forward while blinking screen
def blink_screen():
while True:
brain.screen.clear_screen(Color.RED)
wait(0.5, SECONDS)
brain.screen.clear_screen()
wait(0.5, SECONDS)
blink_screen_thread = Thread(blink_screen)
drivetrain.drive(FORWARD)
# Run multiple threads simultaneously
# Turn right, blink screen at once
def blink_screen():
while True:
brain.screen.clear_screen(Color.RED)
wait(0.5, SECONDS)
brain.screen.clear_screen()
wait(0.5, SECONDS)
def turning():
drivetrain.turn(RIGHT)
blink_screen_thread = Thread(blink_screen)
turning_thread = Thread(turning)
Darbība#
stop#
stop manuāli aptur pavedienu, kas ir noderīgi, ja uzdevums vairs nav nepieciešams vai ja programmai ir jāatiestata pavedieni. Kad pavediens ir apturēts, to nevar restartēt. Lai to palaistu vēlreiz, ir jāizveido jauns pavediens, izmantojot Thread.
Lietojums:
my_thread.stop()
Parametri |
Apraksts |
|---|---|
|
Iepriekš sākts pavediena objekts. Šis ir nosaukums, kas tika piešķirts, kad pavediens tika izveidots, izmantojot |
"""
Run multiple threads simultaneously
Turn right, play a sound and display heading at once
Stop playing sounds after 2 seconds
"""
def sound():
while True:
brain.play_sound(SoundType.ALARM)
wait(0.5, SECONDS)
def display_heading():
while True:
brain.screen.clear_row()
brain.screen.set_cursor(1, 1)
brain.screen.print("Heading: {}".format(brain_inertial.orientation(YAW)))
wait(50, MSEC)
sound_thread = Thread(sound)
display_heading_thread = Thread(display_heading)
drivetrain.turn(RIGHT)
wait(2, SECONDS)
sound_thread.stop()