-
Notifications
You must be signed in to change notification settings - Fork 0
/
wakeModeTest.py
executable file
·91 lines (80 loc) · 2.37 KB
/
wakeModeTest.py
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import RPi.GPIO as GPIO
import time
import datetime
import tubeFunctions
import updateTime
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP)
tubeFunctions.off()
tubeFunctions.ledStatus(False)
#set the end time for wakemode
endTime = datetime.datetime.now()
#wake mode duration in minutes
duration = 20
#enters wake Mode. Cycles through digits until time expires or more movement is detected
def wakeMode():
global endTime
global duration
#adjust end time
endTime = datetime.datetime.now() + datetime.timedelta(minutes=duration)
#print "wakemode entered. Now:",datetime.datetime.now()," Endtime:",endTime
while datetime.datetime.now() < endTime:
tubeFunctions.ledStatus(True)
loopDigits(1,1)
tubeFunctions.ledStatus(False)
tubeFunctions.off()
#print "leaving wakemode. Time is now",datetime.datetime.now()
updateTime.updateTime()
#Loop through all digits in order with wait gap between digits & for iteration number times. Also checks if movement occurs during cycling
def loopDigits(wait, iterations):
i= 0
global endTime
global duration
while i < iterations:
for n in range(10):
#tubeFunctions.outputDigit(n)
if GPIO.input(25) == 0:
endTime = datetime.datetime.now() + datetime.timedelta(minutes=duration)
#print "endTime is now",endTime
#time.sleep(wait)
nextSecond = datetime.datetime.now() + datetime.timedelta(seconds=1)
while datetime.datetime.now() < nextSecond:
currentTime = datetime.datetime.now()
hour = currentTime.hour
hourMsb = hour / 10
hourLsb = hour % 10
tubeFunctions.outputDigit(hourMsb)
time.sleep(0.25)
tubeFunctions.off()
time.sleep(0.1)
tubeFunctions.outputDigit(hourLsb)
time.sleep(0.25)
tubeFunctions.off()
time.sleep(0.25)
min = currentTime.minute
minMsb = min / 10
minLsb = min % 10
tubeFunctions.outputDigit(minMsb)
time.sleep(0.25)
tubeFunctions.off()
time.sleep(0.1)
tubeFunctions.outputDigit(minLsb)
time.sleep(0.25)
tubeFunctions.off()
time.sleep(0.25)
sec = currentTime.second
secMsb = sec / 10
secLsb = sec % 10
tubeFunctions.outputDigit(secMsb)
time.sleep(0.25)
tubeFunctions.off()
time.sleep(0.1)
tubeFunctions.outputDigit(secLsb)
time.sleep(0.25)
tubeFunctions.off()
time.sleep(1.5)
i = i + 1
updateTime.updateTime()
while True:
if GPIO.input(25) == 0:
wakeMode()