Kezdőoldal » Számítástechnika » Programozás » Pythonban futó ciklus közben,...

Wolf_y kérdése:

Pythonban futó ciklus közben, hogyan lehet megoldani a kilépést gombnyomásra?

Figyelt kérdés

Sziasztok. Kezdő pythonos vagyok. Vettem egy Raspberry Pi mikroszámítógépet és éppen annak a GPIO portjára írnék egy futófény programot. Azt szeretném elérni, hogy a program indítása után lehessen választani, hogy az összes led világít vagy a futófény üzemel vagy a program kilép. Ezt addig sikerült is megvalósítanom, hogy a program elindul és megkérdezi mit szeretnél. Külön külön működik minden. De ha pl a futófény programrész fut, hogyan tudom megoldani, hogy a futófény rész fusson tovább de közben ismét lehessen választani, hogy mit is szeretnék. Most csak a CTRL-C vel tudok kilépni ha már fut. Jelenleg ez van:

#-*-coding:ISO-8859-2-*-


#---------------------------------------------------------------------------------------------------------------


import time

import RPi.GPIO as GPIO

from time import sleep

#---------------------------------------------------------------------------------------------------------------


GPIO.setmode(GPIO.BCM)

GPIO.setwarnings(False)

GPIO.setup(17, GPIO.OUT)

GPIO.setup(18, GPIO.OUT)

GPIO.setup(27, GPIO.OUT)

GPIO.setup(22, GPIO.OUT)

GPIO.setup(23, GPIO.OUT)

GPIO.setup(24, GPIO.OUT)

GPIO.setup(25, GPIO.OUT)

GPIO.setup(4, GPIO.OUT)

GPIO.output(17, GPIO.LOW)

GPIO.output(18, GPIO.LOW)

GPIO.output(27, GPIO.LOW)

GPIO.output(22, GPIO.LOW)

GPIO.output(23, GPIO.LOW)

GPIO.output(24, GPIO.LOW)

GPIO.output(25, GPIO.LOW)

GPIO.output(4, GPIO.LOW)


print 'Mit csináljon? -1 fusson -2 minden világitson -0 megálljon és kilépjen'

n= input()

while n !=0 :

if n==1:

print "Fények futnak!"

GPIO.output(17, GPIO.HIGH)

GPIO.output(18, GPIO.HIGH)

GPIO.output(27, GPIO.HIGH)

GPIO.output(22, GPIO.HIGH)

GPIO.output(23, GPIO.HIGH)

GPIO.output(24, GPIO.HIGH)

GPIO.output(25, GPIO.HIGH)

GPIO.output(4, GPIO.HIGH)

time.sleep(1)

GPIO.output(17, GPIO.LOW)

GPIO.output(18, GPIO.LOW)

GPIO.output(27, GPIO.LOW)

GPIO.output(22, GPIO.LOW)

GPIO.output(23, GPIO.LOW)

GPIO.output(24, GPIO.LOW)

GPIO.output(25, GPIO.LOW)

GPIO.output(4, GPIO.LOW)



GPIO.output(17, GPIO.HIGH)

time.sleep(1)

GPIO.output(18, GPIO.HIGH)

time.sleep(1)

GPIO.output(27, GPIO.HIGH)

time.sleep(1)

GPIO.output(22, GPIO.HIGH)

time.sleep(1)

GPIO.output(23, GPIO.HIGH)

time.sleep(1)

GPIO.output(24, GPIO.HIGH)

time.sleep(1)

GPIO.output(25, GPIO.HIGH)

time.sleep(1)

GPIO.output(4, GPIO.HIGH)

time.sleep(1)

GPIO.output(17, GPIO.LOW)

time.sleep(1)

GPIO.output(18, GPIO.LOW)

time.sleep(1)

GPIO.output(27, GPIO.LOW)

time.sleep(1)

GPIO.output(22, GPIO.LOW)

time.sleep(1)

GPIO.output(23, GPIO.LOW)

time.sleep(1)

GPIO.output(24, GPIO.LOW)

time.sleep(1)

GPIO.output(25, GPIO.LOW)

time.sleep(1)

GPIO.output(4, GPIO.LOW)

time.sleep(1)


elif n == 2:


GPIO.output(17, GPIO.HIGH)

GPIO.output(18, GPIO.HIGH)

GPIO.output(27, GPIO.HIGH)

GPIO.output(22, GPIO.HIGH)

GPIO.output(23, GPIO.HIGH)

GPIO.output(24, GPIO.HIGH)

GPIO.output(25, GPIO.HIGH)

GPIO.output(4, GPIO.HIGH)

print "Fények folyamatosan világitanak!"

sleep (30)


else :

print "Nem definiált szám"

GPIO.output(17, GPIO.LOW)

GPIO.output(18, GPIO.LOW)

GPIO.output(27, GPIO.LOW)

GPIO.output(22, GPIO.LOW)

GPIO.output(23, GPIO.LOW)

GPIO.output(24, GPIO.LOW)

GPIO.output(25, GPIO.LOW)

GPIO.output(4, GPIO.LOW)

print "Ön kilépett..."


Előre is köszi minden kicsi segítségért.



2013. nov. 5. 18:49
 1/4 anonim ***** válasza:
0%

Használj break-et a ciklusból való kilépésre.

[link]

2013. nov. 5. 19:42
Hasznos számodra ez a válasz?
 2/4 iostream ***** válasza:
Új szálat indítasz.
2013. nov. 5. 21:13
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
Az új szál indítása a legkézenfekvőbb, de megcsinálhatod úgy is, hogy ciklusban vizsgálod a billentyűzetetet a LED-eket meg programtáblázat alapján vezérled ugyanezen a cikluson belül.
2013. nov. 6. 12:06
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Hát egyenlőre a break-hez fűzöm a legtöbb reményt mert hát nagyon kezdő pythonos lévén ennek az új szálnak az elindítása kicsit bonyolultnak tűnik. De köszi mindenkinek!
2013. nov. 7. 17:52

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!