Skip to content

Commit cda3dcc

Browse files
committed
ServerSideGPIOimplemented
1 parent 0357be1 commit cda3dcc

File tree

2 files changed

+51
-13
lines changed

2 files changed

+51
-13
lines changed

GPIOServerSide.py

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,49 @@
3030
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7,
3131
lcd_columns, lcd_rows, lcd_backlight)
3232

33+
triggered = []
3334

34-
def armed():
35+
def armed(helper):
36+
triggered.remove(helper.cID)
37+
helper.disarmed_lcd_showed = False
38+
if len(triggered) > 0:
39+
lcd.clear()
40+
s = ""
41+
for cID in triggered: s+=str(cID)+" "
42+
lcd.message("Clients\nBreached:"+s)
43+
else:
44+
lcd.clear()
45+
lcd.message('All clients\nOK')
46+
GPIO.output(ledRood,False)
47+
GPIO.output(ledGroen,True)
48+
49+
50+
def lcd_text(text):
3551
lcd.clear()
36-
lcd.message('All clients\narmed')
37-
GPIO.output(ledRood,False)
38-
GPIO.output(ledGroen,True)
52+
lcd.message(text)
53+
54+
def disarm(helper):
55+
if helper.disarmed_lcd_showed == False:
56+
triggered.remove(helper.cID)
57+
lcd.message("Client "+helper.cID+"\nDisarmed")
58+
helper.disarmed_lcd_showed = True
59+
time.sleep(2)
3960

4061
def alarm(helper):
62+
triggered.append(helper.cID)
4163
lcd.clear()
42-
lcd.message('Alarm triggerd:\nClient: {}'.format(x))
64+
lcd.message('Alarm triggerd:\nClient: {}'.format(helper.cID))
4365
GPIO.output(ledGroen,False)
44-
while True:
45-
if helper.armed != True:
46-
GPIO.output(ledRood, True)
47-
time.sleep(1)
48-
GPIO.output(ledRood, False)
49-
time.sleep(1)
50-
else: break
66+
GPIO.output(ledRood, True)
67+
time.sleep(1)
68+
GPIO.output(ledRood, False)
69+
time.sleep(1)
5170

71+
'''
5272
armed()
5373
time.sleep(5)
5474
alarm(3)
5575
time.sleep(5)
5676
GPIO.output(ledGroen,False)
5777
lcd.clear()
78+
'''

csn_server_helper.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import _thread
44

5+
import GPIOServerSide
56
from csn_aes_crypto import csn_aes_crypto
67
from packet_processor import *
7-
#from GPIOServerSide import *
8+
from GPIOServerSide import *
89

910
class ServerHelper:
1011
c = None
@@ -15,6 +16,7 @@ class ServerHelper:
1516
aes_encryptor = None
1617
cID = 0 #client ID, used for LED color changing
1718
armed = True
19+
disarmed_lcd_showed = False
1820

1921
def __init__(self,c,addr):
2022
self.c = c
@@ -35,7 +37,22 @@ def RunAlarmTriggerTimer(self):
3537
self.timer -= 1
3638
if(self.alarm_triggered == True and self.timer == 0):
3739
self.PoundAlarm()
40+
elif(self.alarm_triggered == False and self.armed == True):
41+
lcd_text("All clients\nOK")
42+
elif(self.alarm_triggered == False and self.armed == False):
43+
lcd_text("Client "+self.cID+"\nDisarmed")
3844

3945
def PoundAlarm(self):
46+
alarm(self)
4047
print("Client",self.cID,"breached! Please investigate!")
4148
#alarm(self) #needs to be fired in seperate thread, to prevent blocking on main thread of client.
49+
50+
def ButtonController(self):
51+
while True:
52+
if self.breached and self.armed:
53+
#print("AlarmLoop")
54+
GPIOServerSide.alarm(self)
55+
elif self.armed:
56+
GPIOServerSide.armed(self)
57+
elif self.armed == False:
58+
GPIOServerSide.disarm(self)

0 commit comments

Comments
 (0)