1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| import threading
import time
stop_threads = False
class Tempo (threading.Thread):
# Parametres: preset => duree ,
# base => base de temps (0.1s ou 1s),
# mode => TON ou TOF
def __init__(self, preset, base, mode):
threading.Thread.__init__(self)
self.preset = preset
self.base = base
self.mode = mode
def run(self):
#if self.base == 1:
# self.preset = self.preset * 10
if (self.mode == "TOF"):
self.etat = True
if (self.mode == "TON"):
self.etat = False
if stop_threads:
i = self.preset
for i in range(0, self.preset):
time.sleep(self.base)
if (self.mode == "TOF"):
self.etat = False
if (self.mode == "TON"):
self.etat = True
T1 = Tempo(10,0.1,"TON") # (10 x base=0.1s) = 1s retard enclenchement
T1.start()
T2 = Tempo(6,0.5,"TOF") # (3 x base=0,5s) = 3s retard au declenchement
T2.start()
for i in range(0, 20):
print("programme ", i)
if T1.etat:
print ("T1 done")
T1.etat = False
# activation sortie
if T2.etat:
print ("T2 actif")
# activation sortie
else:
print ("T2 done")
# desactivation sortie
if T1.is_alive():
print("T1 is actif")
if (i == 9 and T1.is_alive()):
print ("Kill T1 demande")
stop_threads = True
T1.join()
stop_threads = False
print('thread T1 killed')
if (i == 7 ):
print ("relance T1")
T1 = Tempo(10,1,"TON") # (10 x base=1s) = 10s retard enclenchement
T1.start()
time.sleep(1) |
Partager