diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.gitignore b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.gitignore new file mode 100644 index 0000000..03db30a --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.gitignore @@ -0,0 +1,5 @@ +/.DS_Store +/Fingerprint/resources/SF_DSS/image +/.idea/workspace.xml +/Fingerprint/resources/.DS_Store +/Fingerprint/resources/SF_DSS/.DS_Store \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/SF_DeviceSecuritySystem.iml b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/SF_DeviceSecuritySystem.iml new file mode 100644 index 0000000..6711606 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/SF_DeviceSecuritySystem.iml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/misc.xml b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/misc.xml new file mode 100644 index 0000000..19f5faa --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/modules.xml b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/modules.xml new file mode 100644 index 0000000..d9b2185 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/vcs.xml b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/DSSystem.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/DSSystem.py new file mode 100644 index 0000000..98a5301 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/DSSystem.py @@ -0,0 +1,1065 @@ +#!/usr/bin/env python3 + +''' +GUI For Device Security System +''' +# Import For GUI +import tkinter +from tkinter import * +# Import GPIO For Lock Control +import RPi.GPIO as GPIO +# Import PiCamera and datetime For Camera Usage +from picamera import PiCamera +#import datetime +# Import fingerpi,time For Fingerprint Sensor +import fingerpi as fp +import time +#import for DB +import config #execute query with config.executeQuery(SQLCOMMAND) +import serial #for USB connection to NFC +import hashlib # for pincode md5 comparison +# Import for NFC +import serial +import config +from datetime import datetime +from datetime import date +ser = serial.Serial('/dev/ttyACM0', 115200, timeout = 10, writeTimeout = 10) + +# Initialize Fingerprint Sensor, GPIO,Camera +f = fp.FingerPi() +f.Open() +f.CmosLed(False) +GPIO.setmode(GPIO.BCM) +GPIO.setwarnings(False) +LOCK = 4 +camera = PiCamera() + +# GUI main frame setting +top = tkinter.Tk() # GUI top +######################## Dan, If you want full screen, put the following two lines back. +#top.attributes("-fullscreen", True) # Full screen +#top.overrideredirect(1) # Distable close, minimize, and maximize + +# GUI Default Variables +WIDTH = 800 # Screen Width +HEIGHT = 480 # Screnn Height +CharcoalGray = '#3b3c43' +top.config(bg = CharcoalGray ) +DEFAULTBG = top.cget("bg") # Default background color +TextColor = '#fbc600' # Synchrony Gold +DEFAULTFONT = "Times 15" # Defualt font + +# Globle variables +Employee_ID = 999999999 # Default Employee_ID +loglist = [] # For log +curr = 0 # For log + + + +''' +Helper Functions +''' +def updateText(t,s): + t.insert(INSERT,s) + t.pack() + top.update() +def updateEntry(t,s): + t.delete(0,END) + t.insert(0,s) + top.update() +def updateTextGrid(t,s): + t.insert(INSERT,s) + t.grid(row = 0, ipadx = 120,column = 0,columnspan=2) + top.update() +def takePic(): + date = datetime.now().strftime("%Y-%m-%d_%H:%M:%S") + camera.resolution = (400,300) + camera.framerate = (15) + camera.capture("LogImage/%s.jpg" % date) +def pinUnlock(t): + GPIO.setup(LOCK, GPIO.OUT) + GPIO.output(LOCK, True) + s = "Unlock\n" + updateEntry(t,s) + i = 5 + while i > 0: + updateEntry(t,str(i)) + i = i -1 + time.sleep(1) + GPIO.output(LOCK, False) + s = "Lock\n" + updateEntry(t,s) + +''' +Fingerprint Sensor -- Functions +''' +def fingerUnlock(t): + global Employee_ID + takePic() + f.CmosLed(True) + s = "Place your finger on the scanner\n" + t.delete('1.0',END) + updateText(t,s) + f.WaitForFinger(False) + cap1 = f.CaptureFinger(best_image = False) + if (cap1[0]['ACK'] == False): + s = "No Image captured \n" + updateText(t,s) + return + rp = f.Identify() + s = "Remove your finger \n" + updateText(t,s) + f.WaitForFinger(True) + f.CmosLed(False) + if (rp[0]['ACK']): + fingerID = rp[0]['Parameter'] # int Type + ##################################################################### + # + # Here we need to use fingerID to findout Employee_ID in database + # and create a timestamp for system log, Need Employee_ID returned! + # + finsql='SELECT Admin_ID from admin WHERE Finger_Registered_Flag = "%d" AND (FINGER_ID="%d" OR FINGER_ID_2="%d" OR FINGER_ID_3="%d")' + val = config.executeQuery(finsql %(1,fingerID,fingerID,fingerID)); + if(val): #found in database + timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + Employee_ID = val[0]["Admin_ID"] #list of dictionaries, set Employee ID + #Create log + logsql='INSERT INTO log(Employee_ID,AccessTime)VALUES("%d","%s")'%(Employee_ID,timestamp) + config.executeQuery(logsql); + + ##################################################################### + s = "The finger ID is " + s = s + str(fingerID) + "\n" + updateText(t,s) + GPIO.setup(LOCK, GPIO.OUT) + GPIO.output(LOCK, True) + s = "Unlock\n" + updateText(t,s) + i = 5 + while i > 0: + s = str(i) + "\n" + updateText(t,s) + i = i -1 + time.sleep(1) + GPIO.output(LOCK, False) + s = "Lock\n" + updateText(t,s) + t.delete('1.0',END) + t.insert(INSERT, "Click Start to Unlock") + t.pack() + top.update() + else: + s = "Finger is not registered \n" + updateText(t,s) + return False + f.CmosLed(False) + return True + +def removeFingerIDs(fingerIDs,t): + for id in fingerIDs: + if id is not None and id < 200: + status = f.CheckEnrolled(id)[0]['ACK'] + if (not status): + s = "ID "+str(id)+" is not registered." + updateEntry(t,s) + continue + else: + rp = f.DeleteId(id) + if(rp[0]['ACK']): + s = "ID "+str(id)+" is deleted." + updateEntry(t,s) + else: + s = str(rp[0]['Parameter']) + " error!" + updateEntry(t,s) + else: + s = "ID " + str(id) + " is not valid." + updateEntry(t,s) + time.sleep(1) + return + +# function that return enroll count +def enroll_count(): + count = f.GetEnrollCount()[0]['Parameter'] + return int(count) + +def IdEnrolled(id): + status = f.CheckEnrolled(id)[0]['ACK'] + if (status): + return True + else: + return False + +def printEnroll(id, t): + t.delete('1.0',END) + f.CmosLed(True) + status = f.EnrollStart(id) + if not status[0]['ACK']: + s = "Error! Try Again. Error code: "+str(status[0]['Parameter']) + "\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + + s = "1.Place your finger on the scanner\n" + updateTextGrid(t,s) + f.WaitForFinger(False) + cap1 = f.CaptureFinger(best_image = True) + if (cap1[0]['ACK'] == False): + s = "1. No Image captured\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + status1 = f.Enroll1() + if not status1[0]['ACK']: + s = "Error! Try Again. Error code: "+str(status1[0]['Parameter']) + "\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + s = "1. Remove your finger\n" + updateTextGrid(t,s) + f.WaitForFinger(True) + s ="2.Place same finger on the scanner\n" + updateTextGrid(t,s) + f.WaitForFinger(False) + cap2 = f.CaptureFinger(best_image = True) + if (cap2[0]['ACK'] == False): + s = "2. No Image captured\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + status2 = f.Enroll2() + if not status2[0]['ACK']: + s = "Error! Try Again. Error code: "+str(status2[0]['Parameter']) + "\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + s = "2. Remove your finger\n" + updateTextGrid(t,s) + f.WaitForFinger(True) + + s = "3.Place same finger on the scanner\n" + updateTextGrid(t,s) + f.WaitForFinger(False) + cap3 = f.CaptureFinger(best_image = True) + if (cap3[0]['ACK'] == False): + s = "3. No Image captured\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + status3 = f.Enroll3() + if not status3[0]['ACK']: + if (status3[0]['Parameter'] == 0): + s = "Finger is already registered\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + else: + s = "Error! Try Again. Error code: "+str(status2[0]['Parameter']) + "\n" + updateTextGrid(t,s) + f.CmosLed(False) + return False + else: + s = "3. Remove your finger\n" + updateTextGrid(t,s) + f.WaitForFinger(True) + s = "Enroll success\n" + updateTextGrid(t,s) + f.CmosLed(False) + return True + + +''' +GUI--Start Frame +==================================================================================================== +''' +# Trigger Functions +def unlockTrigger(): + startFrame.pack_forget() + unlockOptionsFrame.pack() +def settingTrigger(): + takePic() + startFrame.pack_forget() + # Need to Add pinSettingBackTrigger and pinSubmitTrigger + numBackButton.config(command = lambda:pinSettingBackTrigger(usrInpt)) + numSubmitButton.config(command = lambda:pinSubmitTrigger(usrInpt,outputText)) + numberPadFrame.pack() + outputText.delete(0,END) + outputText.insert(0,"Enter Your Pin Code") + top.update() +# Start Frame Building +startFrame = Frame(width = WIDTH, height = HEIGHT) +startFrame.pack_propagate(0) +# Start Frame Variables + # Unlock Button With Image +unlockButton = Button(startFrame, text = "Unlock", bg=DEFAULTBG,activebackground=DEFAULTBG, command = unlockTrigger) +unlockImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/indexPage/unlock_button.gif") +unlockButton.config(image=unlockImage,width="100",height="100") + # Setting Button With Image +settingButton = Button(startFrame, text = "Setting", bg=DEFAULTBG,activebackground=DEFAULTBG,command = settingTrigger) +settingImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/indexPage/setting_button.gif") +settingButton.config(image=settingImage,width="100",height="100") +# Display Start Frame +startFrame.pack(fill= BOTH, expand = True) +unlockButton.pack(side = LEFT, fill = BOTH,expand = 1) +settingButton.pack(side = RIGHT, fill = BOTH,expand = 1) + +''' +GUI--Unlock Options Frame +==================================================================================================== +''' +# Trigger Functions + + # For Entering Admin ID to Unlock the Door +def pinIDBackTrigger(u): + u.delete(0, END) + numberPadFrame.pack_forget() + unlockOptionsFrame.pack() +def pinIDSubmitTrigger(u,t): + global Employee_ID + Employee_ID = int(u.get()) + + u.delete(0, END) + t.delete(0,END) + t.insert(0,Employee_ID) + numberPadFrame.pack_forget() + numBackButton.config(command = lambda:pinUnlockBackTrigger(usrInpt)) + numSubmitButton.config(command = lambda:pinUnlockSubmitTrigger(usrInpt,outputText)) + numberPadFrame.pack() + outputText.delete(0,END) + outputText.insert(0,"Enter your Pin Code") + top.update() + # For Entering Admin Pincode to Unlock the Door +def pinUnlockBackTrigger(u): + u.delete(0, END) + numberPadFrame.pack_forget() + unlockOptionsFrame.pack() +def pinUnlockSubmitTrigger(u,t): + takePic() + pin = u.get() + u.delete(0, END) + t.delete(0,END) + ##################################################################### + # + # We need function that take Employee_ID and pin as parameter + # search Database return True or False to accept the pin or reject + # + pinsql = 'SELECT Pincode from admin WHERE Admin_ID = "%d"'%(Employee_ID) + val = config.executeQuery(pinsql) #the md5 hash in the db + #print(val) + valPin = val[0]['Pincode'] + pinmsg = hashlib.md5() + pinmsg.update(pin.encode("utf-8")) + checkPin = pinmsg.hexdigest() ## the md5 hash of the input + #print(valPin) + #print(checkPin) + result = checkPin==valPin #check equality of input to the DB value + ##################################################################### + + if result: + pinUnlock(t) + ##################################################################### + # + # Update Datebase Log + timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + logsql='INSERT INTO log(Employee_ID,AccessTime)VALUES("%d","%s")'%(Employee_ID,timestamp) + config.executeQuery(logsql) + ##################################################################### + numberPadFrame.pack_forget() + deviceFrame.pack() + else: + updateEntry(t,"Invalid ID or Pin") + time.sleep(2) + numberPadFrame.pack_forget() + startFrame.pack() + + + +def fingerTrigger(): + unlockOptionsFrame.pack_forget() + fingerFrame.pack() +def pinTrigger(): + unlockOptionsFrame.pack_forget() + # Need to Add pinIDBackTrigger and pinIDSubmitTrigger + numBackButton.config(command = lambda:pinIDBackTrigger(usrInpt)) + numSubmitButton.config(command = lambda:pinIDSubmitTrigger(usrInpt,outputText)) + numberPadFrame.pack() + outputText.delete(0,END) + outputText.insert(0,"Enter your employee ID") + top.update() + +def optionsBackTrigger(): + unlockOptionsFrame.pack_forget() + startFrame.pack() +# Frame Building +unlockOptionsFrame = Frame(width = WIDTH, height = HEIGHT) +unlockOptionsFrame.pack_propagate(0) +# Frame Variables +fingerButton = Button(unlockOptionsFrame, text = "Use Fingerprint", bg=DEFAULTBG,activebackground=DEFAULTBG, command = fingerTrigger) +fingerButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/unlockOptionsFrame/fingerprint.gif") +fingerButton.config(image=fingerButtonImage) +pinButton = Button(unlockOptionsFrame, text = "Use Pin Code", bg=DEFAULTBG,activebackground=DEFAULTBG, command = pinTrigger) +pinButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/unlockOptionsFrame/password.gif") +pinButton.config(image=pinButtonImage) +optionsBackButton = Button(unlockOptionsFrame, text = "Back", bg=DEFAULTBG,activebackground=DEFAULTBG, command = optionsBackTrigger) +optionsBackButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/unlockOptionsFrame/back.gif") +optionsBackButton.config(image=optionsBackButtonImage) +# Display Frame +fingerButton.pack(fill=BOTH, expand=1) +pinButton.pack(fill=BOTH, expand=1) +optionsBackButton.pack(fill=BOTH, expand=1) + +''' +GUI--Finger Print Unlock Frame +==================================================================================================== +''' +# Trigger Functions +def fingerStartTrigger(t): + s = "Start finger print scanner" + t.delete('1.0',END) + t.insert(INSERT, s) + t.pack() + if fingerUnlock(t): + fingerFrame.pack_forget() + deviceFrame.pack() +def fingerBackTrigger(t): + t.delete('1.0',END) + t.insert(INSERT, "Click Start to Unlock") + t.pack() + f.CmosLed(False) + fingerFrame.pack_forget() + unlockOptionsFrame.pack() +# Frame Building +fingerFrame = Frame(width = WIDTH, height = HEIGHT) +fingerFrame.pack_propagate(0) +# Frame Variables + # Text Box For Unlock Status +fingerString = "Click Start to Unlock" +fingerText = Text(fingerFrame, bg=DEFAULTBG,fg=TextColor) +fingerText.delete('1.0',END) +fingerText.insert(INSERT, fingerString) + # Start Button +fingerStartButton = Button(fingerFrame, text= "Start", bg=DEFAULTBG, activebackground=DEFAULTBG,command = lambda:fingerStartTrigger(fingerText)) +fingerStartButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/fingerUnlockFrame/start_2.gif") +#Resize# +fingerStartButton.config(image=fingerStartButtonImage) + # Back Button +fingerBackButton = Button(fingerFrame, text= "Back", bg=DEFAULTBG,activebackground=DEFAULTBG, command = lambda:fingerBackTrigger(fingerText)) +fingerBackButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/fingerUnlockFrame/back_2.gif") +#Resize# +fingerBackButton.config(image=fingerBackButtonImage) +# Display Frame +fingerText.pack(ipadx = 120) +fingerStartButton.pack(fill=BOTH, expand=1) +fingerBackButton.pack(fill=BOTH, expand=1) + +''' +GUI--Number Pad Frame +==================================================================================================== +Default number pad frame +Use for diffrent place by replacing the diffrent command for submit button and back button +''' +# Trigger Functions +def hitNum(u, n): + if u.get() == "": + u.delete(0, END) + u.insert(0, n) + else: + u.insert(END, n) + +def deleteTrigger(u): + u.delete(0, END) + u.insert(0, "") +# Frame Building +numberPadFrame = Frame(width = WIDTH, height = HEIGHT) +numberPadFrame.pack_propagate(0) +# Frame Variables +iPadX = 0 +iPadY = 0 + # Input Text Box +usrInpt = Entry(numberPadFrame) +usrInpt.insert(0, "") + # Output Text Box +outputString = "" +outputText = Entry(numberPadFrame,bg=DEFAULTBG,fg=TextColor) +outputText.insert(0,outputString) + # Button From 0 to 9 +zeroButton = Button(numberPadFrame, text = "0", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "0")) +oneButton = Button(numberPadFrame, text = "1", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "1")) +twoButton = Button(numberPadFrame, text = "2", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "2")) +threeButton = Button(numberPadFrame, text = "3", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "3")) +fourButton = Button(numberPadFrame, text = "4", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "4")) +fiveButton = Button(numberPadFrame, text = "5", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "5")) +sixButton = Button(numberPadFrame, text = "6", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "6")) +sevenButton = Button(numberPadFrame, text = "7", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "7")) +eightButton = Button(numberPadFrame, text = "8", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "8")) +nineButton = Button(numberPadFrame, text = "9", bg=DEFAULTBG, font = DEFAULTFONT, command = lambda:hitNum(usrInpt, "9")) + # Other Buttons +deleteButton = Button(numberPadFrame, text="Delete", bg=DEFAULTBG, command=lambda:deleteTrigger(usrInpt)) +numBackButton = Button(numberPadFrame, text = "Back", bg=DEFAULTBG) +numSubmitButton = Button(numberPadFrame, text = "Submit", bg=DEFAULTBG) + #Image +zeroButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/0.gif") +oneButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/1.gif") +twoButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/2.gif") +threeButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/3.gif") +fourButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/4.gif") +fiveButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/5.gif") +sixButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/6.gif") +sevenButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/7.gif") +eightButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/8.gif") +nineButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/9.gif") +deleteButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/clear.gif") +numBackButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/back.gif") +numSubmitButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/numberPadFrame/confirm.gif") + +#Resize# +zeroButton.config(image=zeroButtonImage) +oneButton.config(image=oneButtonImage) +twoButton.config(image=twoButtonImage) +threeButton.config(image=threeButtonImage) +fourButton.config(image=fourButtonImage) +fiveButton.config(image=fiveButtonImage) +sixButton.config(image=sixButtonImage) +sevenButton.config(image=sevenButtonImage) +eightButton.config(image=eightButtonImage) +nineButton.config(image=nineButtonImage) +deleteButton.config(image=deleteButtonImage) +numBackButton.config(image=numBackButtonImage) +numSubmitButton.config(image=numSubmitButtonImage) + +# Display Frame +usrInpt.grid(row=0, column=1, ipadx=50, ipady=38) +outputText.grid(row=0, column=2,ipadx=50,ipady=38) + # 0 - 9 Button + +zeroButton.grid(row=4, column=1, ipady=iPadY, sticky=N+S+E+W) +oneButton.grid(row=1, column=0, ipady=iPadY, sticky=N+S+E+W) +twoButton.grid(row=1, column=1,ipady=iPadY, sticky=N+S+E+W) +threeButton.grid(row=1, column=2,ipady=iPadY, sticky=N+S+E+W) +fourButton.grid(row=2, column=0, ipady=iPadY, sticky=N+S+E+W) +fiveButton.grid(row=2, column=1, ipady=iPadY, sticky=N+S+E+W) +sixButton.grid(row=2, column=2, ipady=iPadY, sticky=N+S+E+W) +sevenButton.grid(row=3, column=0, ipady=iPadY, sticky=N+S+E+W) +eightButton.grid(row=3, column=1, ipady=iPadY, sticky=N+S+E+W) +nineButton.grid(row=3, column=2, ipady=iPadY, sticky=N+S+E+W) + # Other Button +numBackButton.grid(row=0, column =0, ipadx=iPadX, ipady=iPadY, sticky=N+S+E+W) +deleteButton.grid(row=4, column=0, ipadx=iPadX, ipady=iPadY, sticky=N+S+E+W) +numSubmitButton.grid(row=4, column=2, ipadx=iPadX, ipady=iPadY, sticky=N+S+E+W) + +''' +GUI--Device Frame +==================================================================================================== +For Device To Check in or Check out + +''' +def sessionmaker(t, s): #Adds a session into db, returns the NFC of the device scanned + t.delete('1.0',END) + updateTextGrid(t,s) + nfcVal = '' + while(nfcVal=='' or nfcVal==None): + nfcVal = str(ser.readline()) + nfcVal = nfcVal[2:-5] + s = nfcVal + "\n" + updateTextGrid(t,s) + date = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + NFCsql='INSERT INTO sessions (PersonID, AccessTime, NFCID) VALUES("%d","%s","%s")'%(Employee_ID,date,nfcVal) + config.executeQuery(NFCsql) + return nfcVal +def showDeviceName(nfcID, t): + sql = 'SELECT * from devices where NFC_ID ="%s"'%(nfcID) + val = config.executeQuery(sql) + if val: + name = val[0]['Device_Name'] + "\n" + updateTextGrid(t,name) + return True + else: + s = "This device is not in the system" + updateTextGrid(t,s) + return False + +def updateDevice(intoLocker, nfcID,t): #updates the attributes of the device + if not showDeviceName(nfcID, t): + return + sqll = [] + sqll.append('UPDATE devices SET ' ) + if intoLocker: + sqll.append('Location = "%d", Renter = NULL, Ticket_ID = NULL, Borrow_Date=NULL, Permanent = NULL, Return_Date="%s", Status ="Available"') + else:# take out of locker + chksql = 'SELECT * from devices where NFC_ID ="%s"'%(nfcID) + chkVal = config.executeQuery(chksql) + print(chkVal) + if chkVal: + if(chkVal[0]["Status"]=="Ready to Ship"): + if chkVal[0]['Permanent'] == 0: + sqll.append('Status="Shipped"') + else : + sqll.append('Status="On Loan"') + else: + chkVal = False + sqll.append('WHERE NFC_ID = "%s"') + sql = ''.join(sqll) #The Query is joined here. + curDate = date.today().strftime('%Y-%m-%d') + if intoLocker: #query variables depend on direction of movement + val = config.executeQuery(sql %(1,curDate,nfcID)) + if val: + s = "Checkin Sucess!\n" + updateTextGrid(t,s) + elif chkVal: + val = config.executeQuery(sql %(nfcID)) + if val: + s = "Checkout Sucess!\n" + updateTextGrid(t,s) + else: #wrong device, do not modify device table, warn user + s = "Warnning! The device is not scheduled to be shipped" + updateTextGrid(t,s) + +# Trigger Functions +def deviceCheckinTrigger(t): + ##################################################################### + s = "Place your device to check in.\nThe NFC scanner will stop working in 10 senconds.\n" + updateDevice(True, sessionmaker(t , s),t) + + ##################################################################### + return +def deviceCheckoutTrigger(t): + ##################################################################### + + s="Place your device to check out.\nThe NFC scanner will stop working in 10 senconds.\n" + + updateDevice(False, sessionmaker(t,s), t) + + ##################################################################### + return +def deviceBackTrigger(t): + global Employee_ID + t.delete('1.0',END) + t.insert(INSERT, "Device check in or check out\n") + Employee_ID = 999999999 # Reset Employee_ID be default + deviceFrame.pack_forget() + startFrame.pack() +# Frame Building +deviceFrame = Frame(width = WIDTH, height = HEIGHT) +deviceFrame.pack_propagate(0) +# Frame Variables +string = "Device check in or check out" +deviceText = Text(deviceFrame, bg=DEFAULTBG, fg=TextColor) +deviceText.insert(INSERT,string) +checkinButton = Button(deviceFrame,text = "Check In", bg=DEFAULTBG,activebackground=DEFAULTBG,command = lambda:deviceCheckinTrigger(deviceText)) +checkoutButton = Button(deviceFrame, text = "Check Out", bg=DEFAULTBG,activebackground=DEFAULTBG,command = lambda:deviceCheckoutTrigger(deviceText)) +deviceBackButton = Button(deviceFrame, text = "Back", bg=DEFAULTBG, activebackground=DEFAULTBG,command = lambda:deviceBackTrigger(deviceText)) +# image for frame button +checkinButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/DeviceFrame/check_in_2.gif") +checkinButton.config(image=checkinButtonImage) +checkoutButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/DeviceFrame/check_out_2.gif") +checkoutButton.config(image=checkoutButtonImage) +deviceBackButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/DeviceFrame/back_2.gif") +deviceBackButton.config(image=deviceBackButtonImage) +# Display Frame +deviceText.grid(row = 0, ipadx = 120,column = 0,columnspan=2) +checkinButton.grid(row = 1, column = 0,ipadx = 80,ipady=10, sticky=W+E+N+S) +checkoutButton.grid(row = 1, column = 1,ipadx = 80,ipady=10,sticky=W+E+N+S) +deviceBackButton.grid(row = 2, column = 0,columnspan = 2,ipady=10,sticky=W+E+N+S) + +''' +GUI--Setting Options Frame +==================================================================================================== +''' +# Trigger Functions + # For Entering Admin Pincode to Enter Setting Page +def pinSettingBackTrigger(u): + u.delete(0, END) + numberPadFrame.pack_forget() + startFrame.pack() +def pinSubmitTrigger(u,t): + pin = u.get() + u.delete(0, END) + ##################################################################### + # + # Fuction that take pin as prameter to search if there is a match + # return ture or False + # + pinmsg = hashlib.md5() + pinmsg.update(str(pin).encode("utf-8")) + msg = pinmsg.hexdigest() + #print(msg) + pinsql = 'SELECT * from admin WHERE Pincode = "%s"'%(msg) + val = config.executeQuery(pinsql) #the md5 hash in the db + #print(val) + result = False + #print(len(val)) + if len(val) != 0: + result = True + ##################################################################### + if result: + numberPadFrame.pack_forget() + settingOptionsFrame.pack() + else: + updateEntry(t,"Invalid Pin") + time.sleep(2) + numberPadFrame.pack_forget() + startFrame.pack() + + # For Entering Admin ID to Enroll Finger Print +def fingerEnrollBackTrigger(u): + u.delete(0, END) + numberPadFrame.pack_forget() + startFrame.pack() + +def fingerEnrollSubmitTrigger(u,t): + global Employee_ID + Employee_ID = int(u.get()) + u.delete(0, END) + ##################################################################### + # + # Fuction that take Employee_ID as prameter to search if there is a match + # return ture or False + # + #ID Exists AND FLAG+1 AND FINGS ALL FILL then TRUe otherwise False + result = True + finsql='SELECT * from admin WHERE Admin_ID = "%d"'%(Employee_ID) + #print(finsql) + adminfings = config.executeQuery(finsql ) + #print(adminfings) + if adminfings[0] and adminfings[0]["Finger_Registered_Flag"]==1: + if adminfings[0]["Finger_ID"]!= None and adminfings[0]["Finger_ID_2"]!= None and adminfings[0]["Finger_ID_3"]!= None: + result = False + ##################################################################### + if result: + numberPadFrame.pack_forget() + fingerEnrollFrame.pack() + else: + updateEntry(t, "Invalid ID or Already Enrolled.") + time.sleep(2) + numberPadFrame.pack_forget() + settingOptionsFrame.pack() + #fingerEnrollFrame.pack() + + # For Entering Admin ID to Remove Admin +def fingerDeleteBackTrigger(u): + u.delete(0, END) + numberPadFrame.pack_forget() + settingOptionsFrame.pack() +def fingerDeleteSubmitTrigger(u,t): + AdminID = int(u.get()) + u.delete(0, END) + ##################################################################### + # + # Fuction that take AdminID as prameter to search if there is a match + # if Match, and flag be 1, return array of fingerID + # + finsql='SELECT * from admin WHERE Admin_ID = "%d"' + adminfings = config.executeQuery(finsql %(AdminID)) + fingerIDs = [] + if adminfings[0] and adminfings[0]["Finger_Registered_Flag"]==1: + fingerIDs.append(adminfings[0]["Finger_ID"]) + fingerIDs.append(adminfings[0]["Finger_ID_2"]) + fingerIDs.append(adminfings[0]["Finger_ID_3"]) + ##################################################################### + #fingerIDs = [200,201,202] # Need to be return value + removeFingerIDs(fingerIDs,t) + ## if success Delete here + + rmsql = 'UPDATE admin SET Finger_Registered_Flag = "%d" WHERE Admin_ID = "%d"' + config.executeQuery(rmsql %(0, AdminID)) #set finger registered flag to 0, wipe the Admin_IDs. + rmsql = 'DELETE from fingerprint WHERE Finger_ID = "%d"' + for fid in fingerIDs: + config.executeQuery(rmsql %(fid)) #remove fingerID from the fingerprint table, corresponding attributes in admin are set to null from foreign key relation + numberPadFrame.pack_forget() + settingOptionsFrame.pack() + +def logTrigger(): + global loglist + loglist = getLog() + settingOptionsFrame.pack_forget() + logFrame.pack() +def addPrintTrigger(): + numBackButton.config(command = lambda:fingerEnrollBackTrigger(usrInpt)) + numSubmitButton.config(command = lambda:fingerEnrollSubmitTrigger(usrInpt,outputText)) + settingOptionsFrame.pack_forget() + numberPadFrame.pack() + outputText.delete(0,END) + outputText.insert(0,"Enter Your Admin ID To enroll") + top.update() +def deletePrintTrigger(): + settingOptionsFrame.pack_forget() + numBackButton.config(command = lambda:fingerDeleteBackTrigger(usrInpt)) + numSubmitButton.config(command = lambda:fingerDeleteSubmitTrigger(usrInpt,outputText)) + numberPadFrame.pack() + outputText.delete(0,END) + outputText.insert(0,"Enter Admin ID To Delete") + top.update() +def exitTrigger(): + f.CmosLed(False) + top.destroy() +def settingBackTrigger(): + settingOptionsFrame.pack_forget() + startFrame.pack() +# Frame Building +settingOptionsFrame = Frame(width = WIDTH, height = HEIGHT) +settingOptionsFrame.pack_propagate(0) +# Frame Variables +logButton = Button(settingOptionsFrame, text = "Log", bg=DEFAULTBG, activebackground=DEFAULTBG,command = logTrigger) +addPrintButton = Button(settingOptionsFrame, text = "Add Fingerprints", bg=DEFAULTBG,activebackground=DEFAULTBG, command = addPrintTrigger) +deletePrintButton = Button(settingOptionsFrame, text = "Delete Admins", bg=DEFAULTBG,activebackground=DEFAULTBG, command = deletePrintTrigger) +exitButton = Button(settingOptionsFrame, text = "Exit Application", bg=DEFAULTBG, activebackground=DEFAULTBG,command = exitTrigger) +settingBackButton = Button(settingOptionsFrame, text = "Back", bg=DEFAULTBG,activebackground=DEFAULTBG, command = settingBackTrigger) +# Image for setting options +logButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/settingFrame/log.gif") +logButton.config(image=logButtonImage) +addPrintButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/settingFrame/fingerprint.gif") +addPrintButton.config(image=addPrintButtonImage) +deletePrintButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/settingFrame/Dadmins.gif") +deletePrintButton.config(image=deletePrintButtonImage) +exitButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/settingFrame/exit.gif") +exitButton.config(image=exitButtonImage) +settingBackButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/settingFrame/back.gif") +settingBackButton.config(image=settingBackButtonImage) +# Display Frame +logButton.pack(fill=BOTH, expand=1) +addPrintButton.pack(fill=BOTH, expand=1) +deletePrintButton.pack(fill=BOTH, expand=1) +exitButton.pack(fill=BOTH, expand=1) +settingBackButton.pack(fill=BOTH, expand=1) + +''' +GUI--Log Frame +==================================================================================================== +''' + +# database +def getLog(): + logsql = 'SELECT * from log' + sessionsql = 'SELECT sessions.*, devices.Device_Name from sessions INNER JOIN devices ON sessions.NFCID = devices.NFC_ID' + logdata = config.executeQuery(logsql) + sessiondata = config.executeQuery(sessionsql) + for session in sessiondata: + logdata.append(session) + logdata.sort(key=lambda item:item['AccessTime'], reverse=True) + loglist = [] + for dct in logdata: + if len(dct)==3: + s = "{:20s}".format(dct["AccessTime"].strftime('%Y-%m-%d %H:%M:%S'))+ "(Door opened) | Employee ID: {:9d}".format(dct["Employee_ID"]) + elif len(dct)>3: + s = "{:20s}".format(dct["AccessTime"].strftime('%Y-%m-%d %H:%M:%S'))+ "(Device Scanned) | Employee ID: {:9d}".format(dct["PersonID"]) +" | Device ID: {:16s}".format(dct["NFCID"])+" | Name : {:20s}".format(dct["Device_Name"]) + loglist.append(s) + loglist.append("\n") + #teststring = ''.join(loglist) + #print (loglist) + return loglist + +def log45(): + global curr + #print(curr) + if curr + 1 > len(loglist) or curr < 0: + return "There is no more records" + ls = [] + for i in range(curr, curr+46): + if i > len(loglist) -1: + break + ls.append(loglist[i]) + string = ''.join(ls) + #print(string) + return string + +def logLeft45(): + global curr + curr -= 45 + if curr + 1 > len(loglist) or curr < 0: + curr = -45 + return "There is no more records" + + ls = [] + for i in range(curr, curr+46): + if i > len(loglist) -1: + break + ls.append(loglist[i]) + string = ''.join(ls) + #print(string) + return string + +def logRight45(): + global curr + curr += 45 + if curr + 1 > len(loglist) or curr < 0: + curr -= 45 + return "There is no more records" + ls = [] + for i in range(curr, curr+46): + if i > len(loglist) -1: + break + ls.append(loglist[i]) + string = ''.join(ls) + #print(string) + return string + +# Trigger Functions +def logBackTrigger(text): + global curr + curr = 0 + logFrame.pack_forget() + settingOptionsFrame.pack() +def logLeftTrigger(t): + t.delete('1.0',END) + s = logLeft45() + updateTextGrid(t,s) + + return +def logRightTrigger(t): + t.delete('1.0',END) + s = logRight45() + updateTextGrid(t,s) + return + +def showLog(text,s): + text.delete('1.0',END) + updateTextGrid(text,s) + + +# Frame Building +logFrame = Frame(width = WIDTH, height = HEIGHT) +logFrame.pack_propagate(0) +# Frame Variables +loglist = getLog() +logString = log45() +logText = Text(logFrame, bg=DEFAULTBG, fg=TextColor) +showLog(logText,logString) +logLeftButton = Button(logFrame,text = "<|", bg=DEFAULTBG,activebackground=DEFAULTBG,command = lambda:logLeftTrigger(logText)) +logRightButton = Button(logFrame, text = "|>", bg=DEFAULTBG,activebackground=DEFAULTBG,command = lambda:logRightTrigger(logText)) +logBackButton = Button(logFrame, text = "Back", bg=DEFAULTBG,activebackground=DEFAULTBG, command = lambda:logBackTrigger(logText)) +# image for frame +logLeftButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/logFrame/left_arrow_2.gif") +logLeftButton.config(image=logLeftButtonImage) +logRightButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/logFrame/right_arrow_2.gif") +logRightButton.config(image=logRightButtonImage) +# change size +logBackButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/logFrame/back_2.gif") +logBackButton.config(image=logBackButtonImage) +# Display Frame +logText.grid(row = 0, ipadx = 120,column = 0,columnspan=2) +logLeftButton.grid(row = 1, column = 0,ipadx = 0,ipady=10, sticky=W+E+N+S) +logRightButton.grid(row = 1, column = 1,ipadx = 0,ipady=10,sticky=W+E+N+S) +logBackButton.grid(row = 2, column = 0,columnspan = 2,ipady=10,sticky=W+E+N+S) + +''' +GUI--Finger Enroll Frame +==================================================================================================== +''' +# Trigger Functions +def addFingerTrigger(t,n): # n is which finger + + ##################################################################### + # + # Fuction that take Employee_ID as prameter to search if there is a match + # Check flag, Chech fingerID1-3 is None or not, return True or False + # + finsql = 'SELECT * from admin WHERE Admin_ID = "%d"' + print(Employee_ID) + result = True #we can add the new fingerprint + adminfings = config.executeQuery(finsql %(Employee_ID)) + if (adminfings[0] and adminfings[0]["Finger_Registered_Flag"]==1): + if adminfings[0]["Finger_ID"] != None and adminfings[0]["Finger_ID_2"]!= None and adminfings[0]["Finger_ID_3"]!= None: + result = False #all slots full, we cannot add the fingerprint + + ##################################################################### + if n == "1" and adminfings[0]["Finger_ID"]!= None: + s = "Finger_1 is already enrolled.\n" + updateTextGrid(t,s) + return + if n == "2" and adminfings[0]["Finger_ID_2"]!= None: + s = "Finger_2 is already enrolled.\n" + updateTextGrid(t,s) + return + if n == "3" and adminfings[0]["Finger_ID_3"]!= None: + s = "Finger_3 is already enrolled.\n" + updateTextGrid(t,s) + return + printID = 0 + printID = enroll_count() + test = 200 + while(test > 0): + if IdEnrolled(printID): + printID = printID +1 + else: + break + result = printEnroll(printID,t) + if result: + ##################################################################### + # Update the fingerprint table + # Then + # Update admin table with flag(1)/finger(printID). using Employee_ID + # + # + #logsql='INSERT INTO log(Employee_ID,AccessTime)VALUES("%d","%s")'%(Employee_ID,timestamp) + ufsql='INSERT INTO fingerprint(Finger_ID) VALUES("%d")'%(printID) + try: + config.executeQuery(ufsql) + #print("#1") + ##admin table + sqll = [] + sqll.append('UPDATE admin SET Finger_Registered_Flag = "%d", ') + if n == "1": + #This is for fingerOne + sqll.append('Finger_ID = "%d" ') + if n == "2": + #This is for fingerTwo + sqll.append('Finger_ID_2 = "%d" ') + if n == "3": + #This is for fingerThree + sqll.append('Finger_ID_3 = "%d" ') + + sqll.append('WHERE Admin_ID = "%d"') + uasql = ''.join(sqll) #The Query is joined here. + uasql = uasql %(1, printID, Employee_ID) + #print(uasql) + config.executeQuery(uasql ) #set finger registered flag to 1, put the printID in the right place. + + #print("#2") + except: + fingerIDs = [printID] + removeFingerIDs(fingerIDs,t) + ##################################################################### + return + else: + s = "Enroll Failed. Try again later." + updateTextGrid(t,s) + +def addFingerBackTrigger(t): + f.CmosLed(False) + global Employee_ID + Employee_ID = 999999999 + t.delete('1.0',END) + updateTextGrid(t,"Click Buttons To Enroll Your Finger Prints\n") + fingerEnrollFrame.pack_forget() + settingOptionsFrame.pack() +# Frame Building +fingerEnrollFrame = Frame(width = WIDTH, height = HEIGHT) +fingerEnrollFrame.pack_propagate(0) +# Frame Variables +fingerString = "Click Buttons To Enroll Your Finger Prints\n" +fingerEnrollText = Text(fingerEnrollFrame, bg=DEFAULTBG, fg=TextColor) +fingerEnrollText.delete('1.0',END) +fingerEnrollText.insert(INSERT, fingerString) +fingerOneButton = Button(fingerEnrollFrame, text = "Finger One", bg=DEFAULTBG,activebackground=DEFAULTBG, command = lambda:addFingerTrigger(fingerEnrollText, "1")) +fingerTwoButton = Button(fingerEnrollFrame, text = "Finger Two", bg=DEFAULTBG, activebackground=DEFAULTBG,command = lambda:addFingerTrigger(fingerEnrollText, "2")) +fingerThreeButton = Button(fingerEnrollFrame, text = "Finger Three", bg=DEFAULTBG,activebackground=DEFAULTBG, command = lambda:addFingerTrigger(fingerEnrollText, "3")) +fingerEnrollBackButton = Button(fingerEnrollFrame, text = "Back", bg=DEFAULTBG, activebackground=DEFAULTBG,command = lambda:addFingerBackTrigger(fingerEnrollText)) +# image for frame button +fingerOneButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno1_2.gif") +fingerOneButton.config(image=fingerOneButtonImage) +fingerTwoButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno2_2.gif") +fingerTwoButton.config(image=fingerTwoButtonImage) +fingerThreeButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno3_2.gif") +fingerThreeButton.config(image=fingerThreeButtonImage) +fingerEnrollBackButtonImage=PhotoImage(file="/home/pi/SF_DeviceSecuritySystem/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/back_2.gif") +fingerEnrollBackButton.config(image=fingerEnrollBackButtonImage) +# Display Frame +fingerEnrollText.grid(row = 0, column = 0,columnspan=2,ipadx = 120) +fingerOneButton.grid(row = 1, column = 0, sticky=W+E+N+S, ipady = 10) +fingerTwoButton.grid(row = 1, column = 1,sticky=W+E+N+S) +fingerThreeButton.grid(row = 2, column = 0,sticky=W+E+N+S) +fingerEnrollBackButton.grid(row = 2, column = 1, sticky=W+E+N+S, ipady = 10) +''' +GUI--Start +==================================================================================================== +''' +top.mainloop() diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Color Code.docx b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Color Code.docx new file mode 100644 index 0000000..f670158 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Color Code.docx differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/back.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/back.gif new file mode 100644 index 0000000..9080027 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/back.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/back_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/back_2.gif new file mode 100644 index 0000000..77b9931 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_in.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_in.gif new file mode 100644 index 0000000..247bb77 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_in.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_in_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_in_2.gif new file mode 100644 index 0000000..bd71119 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_in_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_out.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_out.gif new file mode 100644 index 0000000..f617450 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_out.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_out_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_out_2.gif new file mode 100644 index 0000000..323c88e Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/check_out_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Preview_map_1.PNG b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Preview_map_1.PNG new file mode 100644 index 0000000..3896ca2 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Preview_map_1.PNG differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Preview_map_2.PNG b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Preview_map_2.PNG new file mode 100644 index 0000000..ae2e6d2 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/Preview_map_2.PNG differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/background_800x480.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/background_800x480.gif new file mode 100644 index 0000000..cb4baf8 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/background_800x480.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/back.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/back.gif new file mode 100644 index 0000000..e8409af Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/back.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/back_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/back_2.gif new file mode 100644 index 0000000..2d3e9ed Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno1.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno1.gif new file mode 100644 index 0000000..6c1d83e Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno1.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno1_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno1_2.gif new file mode 100644 index 0000000..88fe909 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno1_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno2.gif new file mode 100644 index 0000000..8b70dd8 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno2_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno2_2.gif new file mode 100644 index 0000000..1d64e97 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno2_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno3.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno3.gif new file mode 100644 index 0000000..9a701aa Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno3.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno3_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno3_2.gif new file mode 100644 index 0000000..0abf248 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/fno3_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/back.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/back.gif new file mode 100644 index 0000000..368d412 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/back.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/back_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/back_2.gif new file mode 100644 index 0000000..d39f480 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/start.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/start.gif new file mode 100644 index 0000000..b2d1834 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/start.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/start_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/start_2.gif new file mode 100644 index 0000000..c5a52e4 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/start_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/background_800x480.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/background_800x480.gif new file mode 100644 index 0000000..cb4baf8 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/background_800x480.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/setting_button.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/setting_button.gif new file mode 100644 index 0000000..fba1adf Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/setting_button.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/unlock_button.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/unlock_button.gif new file mode 100644 index 0000000..1731a83 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/unlock_button.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/back.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/back.gif new file mode 100644 index 0000000..c3e45f7 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/back.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/back_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/back_2.gif new file mode 100644 index 0000000..cf39dd4 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/left_arrow.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/left_arrow.gif new file mode 100644 index 0000000..20abdbf Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/left_arrow.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/left_arrow_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/left_arrow_2.gif new file mode 100644 index 0000000..2f337f7 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/left_arrow_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/right_arrow.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/right_arrow.gif new file mode 100644 index 0000000..697b043 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/right_arrow.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/right_arrow_2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/right_arrow_2.gif new file mode 100644 index 0000000..d0ea78f Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/right_arrow_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/0.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/0.gif new file mode 100644 index 0000000..5683e84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/0.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/1.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/1.gif new file mode 100644 index 0000000..b6ae72d Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/1.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/2.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/2.gif new file mode 100644 index 0000000..b9d4114 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/2.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/3.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/3.gif new file mode 100644 index 0000000..cd56a14 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/3.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/4.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/4.gif new file mode 100644 index 0000000..58ec974 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/4.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/5.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/5.gif new file mode 100644 index 0000000..4d5e97a Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/5.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/6.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/6.gif new file mode 100644 index 0000000..66b4c0a Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/6.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/7.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/7.gif new file mode 100644 index 0000000..1d21d9b Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/7.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/8.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/8.gif new file mode 100644 index 0000000..98e12ac Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/8.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/9.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/9.gif new file mode 100644 index 0000000..f51cf07 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/9.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/back.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/back.gif new file mode 100644 index 0000000..51b1203 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/back.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/clear.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/clear.gif new file mode 100644 index 0000000..eb0732f Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/clear.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/confirm.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/confirm.gif new file mode 100644 index 0000000..c01cf39 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/confirm.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/Dadmins.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/Dadmins.gif new file mode 100644 index 0000000..d6c0cb1 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/Dadmins.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/back.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/back.gif new file mode 100644 index 0000000..4d7ca90 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/back.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/exit.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/exit.gif new file mode 100644 index 0000000..6c88c33 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/exit.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/fingerprint.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/fingerprint.gif new file mode 100644 index 0000000..ac69e9c Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/fingerprint.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/log.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/log.gif new file mode 100644 index 0000000..cb9bc27 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/log.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/setting.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/setting.gif new file mode 100644 index 0000000..f39c292 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/setting.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/unlock.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/unlock.gif new file mode 100644 index 0000000..b25c523 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/unlock.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/back.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/back.gif new file mode 100644 index 0000000..1e367f0 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/back.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/fingerprint.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/fingerprint.gif new file mode 100644 index 0000000..0dddbc2 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/fingerprint.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/password.gif b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/password.gif new file mode 100644 index 0000000..7459e3d Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/password.gif differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/NFCConnect.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/NFCConnect.py new file mode 100644 index 0000000..24d87a7 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/NFCConnect.py @@ -0,0 +1,15 @@ +import serial +import config +from datetime import datetime +ser = serial.Serial('/dev/ttyACM0', 115200, timeout = 10, writeTimeout = 10) + +string = str(ser.readline()) +string = string[2:-5] +print(string) +print("release") + +#string="Thisbeconnection" +#print("proceed") +#date = datetime.now().strftime('%Y-%m-%d %H:%M:%S') +#sql='INSERT INTO sessions (PersonID, AccessTime, NFCID) VALUES("%d","%s","%s")'%(person,date,string) +#config.executeQuery(sql) diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/config.cpython-34.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/config.cpython-34.pyc new file mode 100644 index 0000000..7664a47 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/config.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/config.cpython-36.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/config.cpython-36.pyc new file mode 100644 index 0000000..9ce2bbf Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/config.cpython-36.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/backup-menu.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/backup-menu.py new file mode 100644 index 0000000..54ee314 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/backup-menu.py @@ -0,0 +1,321 @@ +import fingerpi as fp +import time +import datetime +from types import * +import RPi.GPIO as GPIO + + +f = fp.FingerPi() +print ('Opening connection...') + +f.Open() +f.CmosLed(False) + +#set up GPIO using BCM numbering +GPIO.setmode(GPIO.BCM) +LOCK = 4 + + + +def printMenu(): + print("\nMenu") + print("0. Unlock") + print("1. Enroll Count") + print("2. Check Enrolled ID") + print("3. Enroll new finger") + print("4. Remove enrolled ID") + print("5. Remove all IDs") + print("6. Verify ID (1:1)") + print("7. Identify ID (1:N)") + print("8. Exit \n") + return + +def enroll_count(): + count = f.GetEnrollCount()[0]['Parameter'] + print(("{} fingerprints has been enrolled\n".format(count))) + del count + return + +def enroll(): + enroll_failed = False + enroll_success = False + try: + print(("Totally {} fingerprints has been enrolled\n".format(f.GetEnrollCount()[0]['Parameter']))) + while ((not enroll_failed) and (not enroll_success)): + id = eval(input("Enter enrolled ID: 0-199 (200 to exit): ")) + if (id == 200): + enroll_failed = True + break + if type(id) is not IntType or id < 0 or id > 200: + print("ID is not valid\n") + continue + else: + res = f.CheckEnrolled(id) + if res[0]['ACK']: + print("ID is already used\n") + continue + # print(res[0]['Parameter']) + f.CmosLed(True) + status = f.EnrollStart(id) + if (not status[0]['ACK']): + print((status[0]['Parameter'])) + enroll_failed = True + break + # print(status[0]['Parameter']) + + print("1.Place your finger on the scanner\n") + f.WaitForFinger(False) + cap1 = f.CaptureFinger(best_image = True) + if (cap1[0]['ACK'] == False): + print("1. No Image captured") + enroll_failed = True + break + status1 = f.Enroll1() + if not status1[0]['ACK']: + print((status1[0]['Parameter'])) + enroll_failed = True + break + # print(status1[0]['Parameter']) + print ("1. Remove your finger\n") + f.WaitForFinger(True) + + print("2.Place same finger on the scanner\n") + f.WaitForFinger(False) + cap2 = f.CaptureFinger(best_image = True) + if (cap2[0]['ACK'] == False): + print("2. No Image captured") + enroll_failed = True + break + status2 = f.Enroll2() + if not status2[0]['ACK']: + print((status2[0]['Parameter'])) + enroll_failed = True + break + # print(status2[0]['Parameter']) + print ("2. Remove your finger\n") + f.WaitForFinger(True) + + print("3.Place same finger on the scanner\n") + f.WaitForFinger(False) + cap3 = f.CaptureFinger(best_image = True) + if (cap3[0]['ACK'] == False): + print("2. No Image captured") + enroll_failed = True + break + status3 = f.Enroll3() + if not status3[0]['ACK']: + if (status3[0]['Parameter'] == 0): + print("Finger is already registered") + else: + print((status3[0]['Parameter'])) + enroll_failed = True + break + # print(status3[0]['Parameter']) + enroll_success = True + print ("3. Remove your finger\n") + f.WaitForFinger(True) + + if enroll_failed : + time.sleep(2) + f.CmosLed(False) + print("Enroll failed\n\n") + if enroll_success : + time.sleep(2) + f.CmosLed(False) + print("Enroll success\n") + print(("Totally {} fingerprints has been enrolled.\n".format(f.GetEnrollCount()[0]['Parameter']))) + + except RuntimeError as e: + print(e) + return + + +def check_enrolled_ID(): + while (True): + id = eval(input("Enter enrolled ID: 0-199 (200 to eixt): ")) + if (id == 200): + break + if id < 0 or id > 199: + print("ID is not valid\n") + continue + else: + status = f.CheckEnrolled(id)[0]['ACK'] + if (status): + print(("ID: {} is already used.".format(id))) + else: + print(("ID: {} is good to use.".format(id))) + del status + break + return + +def verify(): + while (True): + id = eval(input("Enter the ID: 0-199 (200 to exit): ")) + if (id == 200): + break + if id < 0 or id > 199: + print("ID is not valid\n") + continue + else: + status = f.CheckEnrolled(id)[0]['ACK'] + if (not status): + print(("ID: {} is not registered.".format(id))) + else: + f.CmosLed(True) + print("Place your finger on the scanner\n") + f.WaitForFinger(False) + cap1 = f.CaptureFinger(best_image = False) + if (cap1[0]['ACK'] == False): + print("1. No Image captured") + break + rp = f.Verify(id) + print("Remove your finger \n") + f.WaitForFinger(True) + if (rp[0]['ACK']): + print((rp[0]['Parameter'])) + print ("Verified \n") + else: + print ("Finger is not verified \n") + + f.CmosLed(False) + break + return + +def identify(): + f.CmosLed(True) + print("Place your finger on the scanner\n") + f.WaitForFinger(False) + cap1 = f.CaptureFinger(best_image = False) + if (cap1[0]['ACK'] == False): + print("1. No Image captured \n") + return + rp = f.Identify() + print("Remove your finger \n") + f.WaitForFinger(True) + if (rp[0]['ACK']): + print(("The finger ID is {}.\n".format(rp[0]['Parameter']))) + else: + print ("Finger is not registered \n") + f.CmosLed(False) + return + +def removeID(): + while (True): + id = eval(input("Enter the ID: 0-199 (200 to exit): ")) + if (id == 200): + break + if id < 0 or id > 199: + print("ID is not valid\n") + continue + else: + status = f.CheckEnrolled(id)[0]['ACK'] + if (not status): + print(("ID: {} is not registered.".format(id))) + continue + else: + rp = f.DeleteId(id) + if(rp[0]['ACK']): + print(("ID: {} is deleted.".format(id))) + break + else: + print(("{} error!".format(rp[0]['Parameter']))) + break + return + +def removeAll(): + status = f.DeleteAll() + if (status): + print ("All the fingerprints are deleted") + else: + print(("{} error!".format(rp[0]['Parameter']))) + return + +def unlock(): + #takePic() + f.CmosLed(True) + print("Place your finger on the scanner\n") + f.WaitForFinger(False) + cap1 = f.CaptureFinger(best_image = False) + if (cap1[0]['ACK'] == False): + print("1. No Image captured \n") + return + rp = f.Identify() + print("Remove your finger \n") + f.WaitForFinger(True) + f.CmosLed(False) + if (rp[0]['ACK']): + print(("The finger ID is {}.\n".format(rp[0]['Parameter']))) + GPIO.setup(LOCK, GPIO.OUT) + GPIO.output(LOCK, True) + print("Unlock") + i = 5 + while i > 0: + print(i) + i = i -1 + time.sleep(1) + GPIO.output(LOCK, False) + print("lock") + else: + print ("Finger is not registered \n") + #f.CmosLed(False) + return + + + + + + + +try: + while True: + f.CmosLed(False) + printMenu() + option = eval(input("Select an option: ")) + if (option == 0 ): + print("0. Unlock") + unlock() + continue + if (option == 1): + print("1. Enroll Count: \n") + enroll_count() + continue + elif (option == 2): + print("2. Check Enrolled ID: \n") + check_enrolled_ID() + continue + elif (option == 3): + print("3. Enroll new finger: \n") + enroll() + continue + elif (option == 4): + print("4. Remove enrolled ID") + removeID() + continue + elif (option == 5): + print("5. Remove all IDs") + removeAll() + continue + elif (option == 6): + print("6. Verify ID (1:1)") + verify() + continue + elif (option == 7): + print("7. Identify ID (1:N)") + identify() + continue + elif (option == 8): + print("8. Exit") + f.Close() + GPIO.cleanup() + break + else: + print("Invalid input") + continue +except RuntimeError as e: + print(e) +except SyntaxError as e: + print (e) +except NameError as e: + print (e) + + diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/config.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/config.py new file mode 100644 index 0000000..9ab5439 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/config.py @@ -0,0 +1,25 @@ +import pymysql +import pymysql.cursors +from datetime import datetime + +def executeQuery(sql): + Hostname = "us-cdbr-iron-east-04.cleardb.net" + Username = "b372dfe7409692" + Password = "74f6e317" + + date = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + conn= pymysql.connect(host=Hostname,user=Username,password=Password,db='ad_15a989204c2ff8a',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor) + curs=conn.cursor(pymysql.cursors.DictCursor) + try: + curs.execute(sql) + retval = curs.fetchall() + conn.commit() + print("successfully executed query") + curs.close() + conn.close() + return retval + except: + print("failed to execute query, please try again") + conn.rollback() + curs.close() + conn.close() diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__init__.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__init__.py new file mode 100644 index 0000000..789392d --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__init__.py @@ -0,0 +1 @@ +from .fingerpi import FingerPi \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__init__.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__init__.pyc new file mode 100644 index 0000000..85cff37 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__init__.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/__init__.cpython-34.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/__init__.cpython-34.pyc new file mode 100644 index 0000000..aa807c2 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/__init__.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/base.cpython-34.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/base.cpython-34.pyc new file mode 100644 index 0000000..7e4c521 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/base.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/fingerpi.cpython-34.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/fingerpi.cpython-34.pyc new file mode 100644 index 0000000..2b1ea76 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/fingerpi.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/structure.cpython-34.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/structure.cpython-34.pyc new file mode 100644 index 0000000..95afb11 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/structure.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/base.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/base.py new file mode 100644 index 0000000..e1f7aba --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/base.py @@ -0,0 +1,143 @@ + +import struct +from .structure import * + + +""" +Command Packet: +OFFSET ITEM TYPE DESCRIPTION +---------------------------------------------------------------- +0 0x55 BYTE Command start code 1 +1 0xAA BYTE Command start code 2 +2 Device ID WORD Device ID (default: 0x0001) +4 Parameter DWORD Input parameter +8 Command WORD Command code +10 Checksum WORD Byte addition checksum + +Response Packet: +OFFSET ITEM TYPE DESCRIPTION +---------------------------------------------------------------- +0 0x55 BYTE Response code 1 +1 0xAA BYTE Response code 2 +2 Device ID WORD Device ID (default: 0x0001) +4 Parameter DWORD Error code +8 Response WORD Response (ACK/NACK) +10 Checksum WORD Byte addition checksum + +Data Packet: +OFFSET ITEM TYPE DESCRIPTION +---------------------------------------------------------------- +0 0x5A BYTE Data code 1 +1 0xA5 BYTE Data code 2 +2 Device ID WORD Device ID (default: 0x0001) +4 Parameter N BYTES N bytes of data - size predefined +4 + N Checksum WORD Byte addition checksum +""" + +""" +Args: + typ: Type of the packet to create + 'comm': Command/Response packet + 'data': Data packet + device_id: Device ID (defualts to 1) + parameter: Parameter to send + command: Command to send +""" + +def encode_command_packet( + command = None, + parameter = 0, + device_id = 1): + + command = commands[command] + packet = bytearray(struct.pack(comm_struct(), + packets['Command1'], # Start code 1 + packets['Command2'], # Start code 2 + device_id, # Device ID + parameter, # Parameter + command # Command + )) + checksum = sum(packet) + packet += bytearray(struct.pack(checksum_struct(), checksum)) + return packet + +def encode_data_packet( + data = None, + data_len = 0, + device_id = 1): + + packet = bytearray(struct.pack(data_struct(data_len), + packets['Data1'], # Start code 1 + packets['Data2'], # Start code 2 + device_id, # Device ID + data # Data to be sent + )) + checksum = sum(packet) + packet += bytearray(struct.pack(checksum_struct(), checksum)) + return packet + +def decode_command_packet(packet): + response = { + 'Header': None, + 'DeviceID': None, + 'ACK': None, + 'Parameter': None, + 'Checksum': None + } + _debug = packet + if packet == '': # Nothing to decode + response['ACK'] = False + return response + # Check if it is a data packet: + if packet[0] == packets['Data1'] and packet[1] == packets['Data2']: + return decode_data_packet(packet) + # Strip the checksum and get the values out + checksum = sum(struct.unpack(checksum_struct(), packet[-2:])) # Last two bytes are checksum + packet = packet[:-2] + response['Checksum'] = sum(packet) == checksum # True if checksum is correct + + try: + packet = struct.unpack(comm_struct(), packet) + except Exception as e: + raise Exception(str(e) + ' ' + str(packet[0])) + response['Header'] = hex(packet[0])[2:] + hex(packet[1])[2:] + response['DeviceID'] = hex(packet[2])[2:] + response['ACK'] = packet[4] != 0x31 # Not NACK, might be command + # response['Parameter'] = packet[3] if response['ACK'] else errors[packet[3]] + response['Parameter'] = errors[packet[3]] if (not response['ACK'] and packet[3] in errors) else packet[3] + return response + +def decode_data_packet(packet): + response = { + 'Header': None, + 'DeviceID': None, + 'Data': None, + 'Checksum': None + } + if packet == '': + response['ACK'] = False + return response + # Check if it is a command packet: + if packet[0] == packets['Command1'] and packet[1] == packets['Command2']: + return decode_command_packet(packet) + + # Strip the checksum and get the values out + checksum = sum(struct.unpack(checksum_struct(), packet[-2:])) # Last two bytes are checksum + packet = packet[:-2] + # Data sum might be larger than the checksum field: + chk = sum(packet) + chk &= 0xffff + response['Checksum'] = chk == checksum # True if checksum is correct + + data_len = len(packet) - 4 # Exclude the header (2) and device ID (2) + + packet = struct.unpack(data_struct(data_len), packet) + response['Header'] = hex(packet[0])[2:] + hex(packet[1])[2:] + response['DeviceID'] = hex(packet[2])[2:] + response['Data'] = packet[3] + # print packet + return response + + + + diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/base.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/base.pyc new file mode 100644 index 0000000..c1880b9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/base.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/exceptions.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/exceptions.py new file mode 100644 index 0000000..bb14509 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/exceptions.py @@ -0,0 +1,60 @@ + +## Exceptions specifically for the FingerPi communication +## All exceptions inherit from RuntimeError + +################################################################################ +# Port IO related errors +class PortError(IOError): + """Base class for port errors""" + def __init__(self, *args, **kwargs): + IOError.__init__(self, *args, **kwargs) + +################################################################################ +# Cases when trying to reuse variables that are already in use +class AlreadyError(RuntimeError): + """Base class""" + def __init__(self, *args, **kwargs): + RuntimeError.__init__(self, *args, **kwargs) + +class AlreadyInitializedError(AlreadyError): + """If trying to initialize the device that is already initialized""" + def __init__(self, *args, **kwargs): + AlreadyError.__init__(self, *args, **kwargs) + +class AlreadyOpenError(AlreadyError): + """If trying to open the device that is already open""" + def __init__(self, *args, **kwargs): + AlreadyError.__init__(self, *args, **kwargs) +################################################################################ +# Cases when trying to use variables that are not yet created +class NotYetError(RuntimeError): + """Base class""" + def __init__(self, *args, **kwargs): + RuntimeError.__init__(self, *args, **kwargs) + +class NotInitializedError(NotYetError): + """If trying to use methods without initializing first""" + def __init__(self, *args, **kwargs): + NotYetError.__init__(self, *args, **kwargs) + +class NotOpenError(NotYetError): + """If trying to use methods without opening first""" + def __init__(self, *args, **kwargs): + NotYetError.__init__(self, *args, **kwargs) + +################################################################################ +# Nack errors (tricky) +class NackError(RuntimeError): + """Any NACK errors would be here""" + def __init__(self, *args, **kwargs): + RuntimeError.__init__(self, *args, **kwargs) + +################################################################################ +# Name/Key/Value errors +class OutOfBoundsError(ValueError): + """If the values are outside the range!""" + def __init__(self, *args, **kwargs): + ValueError.__init__(self, *args, **kwargs) + + + diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/fingerpi.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/fingerpi.py new file mode 100644 index 0000000..f93041b --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/fingerpi.py @@ -0,0 +1,323 @@ + +"""Communication with the Fingerprint Scanner using R-Pi""" + +import os, sys +import serial +import time + +from .base import * + +class FingerPi(): + def __init__(self, + port = '/dev/ttyUSB0', + baudrate = 9600, + device_id = 0x01, + timeout = 2, + *args, **kwargs): + self.port = port + self.baudrate = baudrate + if not os.path.exists(port): + raise IOError("Port " + self.port + " cannot be opened!") + + self.serial = serial.Serial( + port = self.port, baudrate = self.baudrate, timeout = timeout, + *args, **kwargs) + + self.device_id = device_id + self.timeout = 5 + + self.save = False + + self.serial.flushInput() + self.serial.flushOutput() + + + ########################################################## + ## Send/Get routines + + def sendCommand(self, command, parameter = 0x00): + if type(parameter) == bool: + parameter = parameter*1 + packet = encode_command_packet(command, parameter, device_id = self.device_id) + + # The length of the written command should match: + result = len(packet) == self.serial.write(packet) + self.serial.flush() + return result + + def getResponse(self, response_len = 12): + response = self.serial.read(response_len) + # print len(response) + return decode_command_packet(bytearray(response)) + + def sendData(self, data, data_len): + packet = encode_data_packet(data, data_len, device_id = self.device_id) + result = len(packet) == self.serial.write(packet) + self.serial.flush() + return result + + def getData(self, data_len): + # Data length is different for every command + response = self.serial.read(1+1+2+data_len+2) # Header(2) + ID(2) + data + checksum(2) + # return response + return decode_data_packet(bytearray(response)) + + + ########################################################## + ## Send/Get routines + def Open(self, extra_info = False, check_baudrate = False): + # Check baudrate: + if check_baudrate: + self.serial.timeout = 0.5 + for baudrate in (self.serial.baudrate,) + self.serial.BAUDRATES: + if 9600 <= baudrate <= 115200: + self.serial.baudrate = baudrate + if not self.sendCommand('Open', extra_info): + raise RuntimeError("Couldn't send 'Open' packet!") + # print baudrate + response = self.getResponse() + if response['ACK']: + # Decoded something + response['Parameter'] = baudrate + break + + if self.serial.baudrate > 115200: # Cannot be more than that + raise RuntimeError("Couldn't find appropriate baud rate!") + else: + self.sendCommand('Open', extra_info) + response = self.getResponse() + data = None + if extra_info: + data = self.getData(16+4+4) + self.serial.timeout = self.timeout + return [response, data] + + def Close (self): + self.ChangeBaudrate(9600) + if self.sendCommand('Close'): + response = self.getResponse() + self.serial.flushInput() + self.serial.flushOutput() + self.serial.close() + return [response, None] + + else: + raise RuntimeError("Couldn't send packet") + + def UsbInternalCheck(self): + if self.sendCommand('UsbInternalCheck'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def CmosLed(self, on = False): + if self.sendCommand('CmosLed', on): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def ChangeBaudrate(self, baudrate): + if self.sendCommand('ChangeBaudrate', baudrate): + response = self.getResponse() + self.serial.baudrate = baudrate + return [response, None] + else: + raise RuntimeError("Couldn't send packet") + + def GetEnrollCount(self): + if self.sendCommand('GetEnrollCount'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def CheckEnrolled(self, ID): + if self.sendCommand('CheckEnrolled', ID): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def EnrollStart(self, ID): + self.save = ID == -1 + if self.sendCommand('EnrollStart', ID): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def Enroll1(self): + if self.sendCommand('Enroll1'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def Enroll2(self): + if self.sendCommand('Enroll2'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def Enroll3(self): + if self.sendCommand('Enroll3'): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + data = None + if self.save: + data = self.getData(498) + return [response, data] + + def IsPressFinger(self): + if self.sendCommand('IsPressFinger'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def DeleteId(self, ID): + if self.sendCommand('DeleteID', ID): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def DeleteAll(self): + if self.sendCommand('DeleteAll'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def Verify(self, ID): + if self.sendCommand('Verify',ID): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def Identify(self): + if self.sendCommand('Identify'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def VerifyTemplate(self, ID, template): + if self.sendCommand('VerifyTemplate', ID): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + if self.sendData(template, 498): + data = self.getResponse() + else: + raise RuntimeError("Couldn't send packet (data)") + return [response, data] + + def IdentifyTemplate(self, template): + if self.sendCommand('IdentifyTemplate'): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + if self.sendData(template, 498): + data = self.getResponse() + else: + raise RuntimeError("Couldn't send packet (data)") + return [response, data] + + def CaptureFinger(self, best_image = False): + # For enrollment use 'best_image = True' + # For identification use 'best_image = False' + if best_image: + self.serial.timeout = 10 + if self.sendCommand('CaptureFinger', best_image): + self.serial.timeout = self.timeout + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def MakeTemplate(self): + if self.sendCommand('MakeTemplate'): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + self.serial.timeout = 10 + data = self.getData(498) + self.serial.timeout = self.timeout + return [response, data] + + def GetImage(self, dim = (258, 202)): + # The documentation is ambiguous: + # Dimensions could be 202x258 or 256x256 + to_read = dim[0]*dim[1] + + if self.sendCommand('GetImage'): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + data = None + if response['ACK']: + self.serial.timeout = None # This is dangerous! + data = self.getData(dim[0]*dim[1]) + self.serial.timeout = self.timeout + data['Data'] = (data['Data'], dim) + return [response, data] + + def GetRawImage(self, dim = (160, 120)): + if self.sendCommand('GetRawImage'): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + data = None + if response['ACK']: + self.serial.timeout = None # This is dangerous! + data = self.getData(dim[0]*dim[1]) + self.serial.timeout = self.timeout + # Add dimensions to the data + data['Data'] = (data['Data'], dim) + return [response, data] + + def GetTemplate(self, ID): + if self.sendCommand('GetTemplate', ID): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + self.serial.timeout = None # This is dangerous! + data = self.getData(498) + self.serial.timeout = self.timeout + return [response, data] + + def SetTemplate(self, ID, template): + if self.sendCommand('SetTemplate', ID): + response = self.getResponse() + else: + raise RuntimeError("Couldn't send packet") + if self.sendData(template, 498): + data = self.getResponse() + else: + raise RuntimeError("Couldn't send packet (data)") + return [response, data] + + def GetDatabaseStart(self): + if self.sendCommand('GetDatabaseStart'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def GetDatabaseEnd(self): + if self.sendCommand('GetDatabaseEnd'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def SetIAPMode(self): + if self.sendCommand('SetIAPMode'): + return [self.getResponse(), None] + else: + raise RuntimeError("Couldn't send packet") + + def WaitForFinger(self, state): + if (state): + while(self.IsPressFinger()[0]['Parameter'] == 0): + time.sleep(0.1) + else: + n = 50 # only wait for about 10 sec + while(self.IsPressFinger()[0]['Parameter'] >0): + if n < 0: + self.CmosLed(False) + break + n -= 1 + time.sleep(0.1) + diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/fingerpi.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/fingerpi.pyc new file mode 100644 index 0000000..2669a1d Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/fingerpi.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/structure.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/structure.py new file mode 100644 index 0000000..9b0d100 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/structure.py @@ -0,0 +1,111 @@ + + +""" +Command Packet: +OFFSET ITEM TYPE DESCRIPTION +---------------------------------------------------------------- +0 0x55 BYTE Command start code 1 +1 0xAA BYTE Command start code 2 +2 Device ID WORD Device ID (default: 0x0001) +4 Parameter DWORD Input parameter +8 Command WORD Command code +10 Checksum WORD Byte addition checksum + +Response Packet: +OFFSET ITEM TYPE DESCRIPTION +---------------------------------------------------------------- +0 0x55 BYTE Response code 1 +1 0xAA BYTE Response code 2 +2 Device ID WORD Device ID (default: 0x0001) +4 Parameter DWORD Error code +8 Response WORD Response (ACK/NACK) +10 Checksum WORD Byte addition checksum + +Data Packet: +OFFSET ITEM TYPE DESCRIPTION +---------------------------------------------------------------- +0 0x5A BYTE Data code 1 +1 0xA5 BYTE Data code 2 +2 Device ID WORD Device ID (default: 0x0001) +4 Parameter N BYTES N bytes of data - size predefined +4 + N Checksum WORD Byte addition checksum +""" + +comm_struct = lambda: 'Enroll1->Enroll2->Enroll3) + 0x100C: 'NACK_BAD_FINGER', # Fingerprint is too bad + 0x100D: 'NACK_ENROLL_FAILED', # Enrollment Failure + 0x100E: 'NACK_IS_NOT_SUPPORTED', # The command is not supported + 0x100F: 'NACK_DEV_ERR', # Device error: probably Crypto-Chip is faulty (Wrong checksum ~Z) + 0x1010: 'NACK_CAPTURE_CANCELED', # (Obsolete) Capturing was canceled + 0x1011: 'NACK_INVALID_PARAM', # Invalid parameter + 0x1012: 'NACK_FINGER_IS_NOT_PRESSED', # Finger is not pressed +} + +responses = { + 'Ack': 0x30, + 'Nack': 0x31, + 0x30: 'Ack', + 0x31: 'Nack' +} + diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/structure.pyc b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/structure.pyc new file mode 100644 index 0000000..f490089 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/structure.pyc differ diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/testQ.py b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/testQ.py new file mode 100644 index 0000000..60140a1 --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/DSSystem/testQ.py @@ -0,0 +1,58 @@ +import config +from datetime import date +#fingerID=2 +#finsql='SELECT Admin_ID from admin WHERE FINGER_REGISTERED_FLAG = 1 AND (FINGER_ID="%d" OR FINGER_ID_2="%d" OR FINGER_ID_3="%d")' +#val = config.executeQuery(finsql %(fingerID,fingerID,fingerID)); + +#from datetime import datetime +#acctime = datetime.now().strftime('%Y-%m-%d %H:%M:%S') +#empID = 18 +#sql='INSERT INTO log(Employee_ID,AccessTime)VALUES("%d","%s")'%(empID,acctime) +#val = config.executeQuery(sql); +#print(val); + +#pinsql = 'SELECT pin from admin WHERE Admin_ID = getEmployeeIDSomeHow' +#val = config.executeQuery(pinsql) +#print(val==pin) +#import hashlib +#m = hashlib.md5() +#m.update("1234".encode("utf-8")) +#print(m.hexdigest()) # its more common to show hashes as a hex string +# '81dc9bdb52d04dc20036dbd8313ed055' + +#sql = 'SELECT * from admin WHERE Admin_ID = "8q6812"' +#adminfings = config.executeQuery(sql) + + +#print(adminfings) + +#if adminfings: + # print ("yes") +#else: +# print ("No") + +logsql = 'SELECT * from log' +#sessionsql = 'SELECT * from sessions' +sessionsql = 'SELECT sessions.*, devices.Device_Name from sessions INNER JOIN devices ON sessions.NFCID = devices.NFC_ID' +logdata = config.executeQuery(logsql) +sessiondata = config.executeQuery(sessionsql) +#devicedata = config.executeQuery(devicenamesql) +#print(devicedata) +for session in sessiondata: + logdata.append(session) +logdata.sort(key=lambda item:item['AccessTime'], reverse=False) +output = [] +for dct in logdata: + #print(dct) + if len(dct)==3: + s = "Access Time: {:20s}".format(dct["AccessTime"].strftime('%Y-%m-%d %H:%M:%S'))+ " (Door opened) | Log ID: {:4d}".format(dct['log_ID'])+" | Employee ID: {:9d}".format(dct["Employee_ID"]) + elif len(dct)>3: + s = "Access Time: {:20s}".format(dct["AccessTime"].strftime('%Y-%m-%d %H:%M:%S'))+ " (Device Scanned) | Ses ID: {:4d}".format(dct['SessionID'])+" | Employee ID: {:9d}".format(dct["PersonID"]) +" | Device ID: {:16s}".format(dct["NFCID"])+" | Name : {:20s}".format(dct["Device_Name"]) + output.append(s) + output.append("\n") +teststring = ''.join(output) + +print(output[0]) +#print(teststring) + +#print(date.today()) diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/README.md b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/README.md new file mode 100644 index 0000000..2e7204f --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/README.md @@ -0,0 +1 @@ +# SF_DeviceSecuritySystem \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/autostart.txt b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/autostart.txt new file mode 100644 index 0000000..f13c66e --- /dev/null +++ b/SF_DeviceSecuritySystem-master/SF_DeviceSecuritySystem-master/autostart.txt @@ -0,0 +1,14 @@ +in /home/pi/.config build a directory name autostart, and build a new file name DSSystem + +[Desktop Entry] +Name = DSSystem +Comment = DSSystem Autostart +Exec=python3 /home/pi/SF_DeviceSecuritySystem/DSSystem/DSSystem.py +Terminal = false +MultipleArgs = true (should be false if you do not want input) +MutipleArgs = true (should be false if you do not want input) +Type=Application +Categories=Application;Development; +StartupNotify=true + +then sudo reboot \ No newline at end of file diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/._SF_DeviceSecuritySystem-master b/SF_DeviceSecuritySystem-master/__MACOSX/._SF_DeviceSecuritySystem-master new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/._SF_DeviceSecuritySystem-master differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.DS_Store b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.DS_Store new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.DS_Store differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.gitignore b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.gitignore new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.gitignore differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.idea b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.idea new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._.idea differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._DSSystem b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._DSSystem new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._DSSystem differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._README.md b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._README.md new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._README.md differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._autostart.txt b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._autostart.txt new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/._autostart.txt differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._SF_DeviceSecuritySystem.iml b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._SF_DeviceSecuritySystem.iml new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._SF_DeviceSecuritySystem.iml differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._misc.xml b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._misc.xml new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._misc.xml differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._modules.xml b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._modules.xml new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._modules.xml differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._vcs.xml b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._vcs.xml new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._vcs.xml differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._workspace.xml b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._workspace.xml new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/.idea/._workspace.xml differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._DSSystem.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._DSSystem.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._DSSystem.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._GUIButtonImage b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._GUIButtonImage new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._GUIButtonImage differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._NFCConnect.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._NFCConnect.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._NFCConnect.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/.___pycache__ b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/.___pycache__ new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/.___pycache__ differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._backup-menu.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._backup-menu.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._backup-menu.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._config.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._config.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._config.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._fingerpi b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._fingerpi new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._fingerpi differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._testQ.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._testQ.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/._testQ.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Color Code.docx b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Color Code.docx new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Color Code.docx differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._DeviceFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._DeviceFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._DeviceFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Preview_map_1.PNG b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Preview_map_1.PNG new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Preview_map_1.PNG differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Preview_map_2.PNG b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Preview_map_2.PNG new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._Preview_map_2.PNG differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._background_800x480.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._background_800x480.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._background_800x480.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._fingerPrintEnrollFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._fingerPrintEnrollFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._fingerPrintEnrollFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._fingerUnlockFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._fingerUnlockFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._fingerUnlockFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._indexPage b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._indexPage new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._indexPage differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._logFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._logFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._logFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._numberPadFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._numberPadFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._numberPadFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._settingFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._settingFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._settingFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._startFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._startFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._startFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._unlockOptionsFrame b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._unlockOptionsFrame new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/._unlockOptionsFrame differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._back.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._back.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._back.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._back_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._back_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_in.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_in.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_in.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_in_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_in_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_in_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_out.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_out.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_out.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_out_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_out_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/DeviceFrame/._check_out_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._back.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._back.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._back.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._back_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._back_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno1.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno1.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno1.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno1_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno1_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno1_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno2_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno2_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno2_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno3.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno3.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno3.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno3_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno3_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerPrintEnrollFrame/._fno3_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._back.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._back.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._back.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._back_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._back_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._start.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._start.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._start.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._start_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._start_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/fingerUnlockFrame/._start_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._background_800x480.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._background_800x480.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._background_800x480.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._setting_button.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._setting_button.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._setting_button.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._unlock_button.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._unlock_button.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/indexPage/._unlock_button.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._back.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._back.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._back.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._back_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._back_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._back_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._left_arrow.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._left_arrow.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._left_arrow.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._left_arrow_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._left_arrow_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._left_arrow_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._right_arrow.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._right_arrow.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._right_arrow.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._right_arrow_2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._right_arrow_2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/logFrame/._right_arrow_2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._0.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._0.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._0.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._1.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._1.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._1.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._2.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._2.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._2.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._3.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._3.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._3.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._4.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._4.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._4.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._5.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._5.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._5.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._6.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._6.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._6.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._7.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._7.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._7.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._8.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._8.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._8.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._9.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._9.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._9.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._back.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._back.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._back.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._clear.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._clear.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._clear.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._confirm.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._confirm.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/numberPadFrame/._confirm.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._Dadmins.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._Dadmins.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._Dadmins.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._back.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._back.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._back.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._exit.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._exit.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._exit.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._fingerprint.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._fingerprint.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._fingerprint.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._log.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._log.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/settingFrame/._log.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/._setting.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/._setting.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/._setting.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/._unlock.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/._unlock.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/startFrame/._unlock.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._back.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._back.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._back.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._fingerprint.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._fingerprint.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._fingerprint.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._password.gif b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._password.gif new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/GUIButtonImage/unlockOptionsFrame/._password.gif differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/._config.cpython-34.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/._config.cpython-34.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/._config.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/._config.cpython-36.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/._config.cpython-36.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/__pycache__/._config.cpython-36.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___init__.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___init__.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___init__.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___init__.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___init__.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___init__.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___pycache__ b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___pycache__ new file mode 100644 index 0000000..637ce84 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/.___pycache__ differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._base.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._base.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._base.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._base.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._base.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._base.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._exceptions.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._exceptions.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._exceptions.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._fingerpi.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._fingerpi.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._fingerpi.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._fingerpi.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._fingerpi.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._fingerpi.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._structure.py b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._structure.py new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._structure.py differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._structure.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._structure.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/._structure.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/.___init__.cpython-34.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/.___init__.cpython-34.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/.___init__.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._base.cpython-34.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._base.cpython-34.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._base.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._fingerpi.cpython-34.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._fingerpi.cpython-34.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._fingerpi.cpython-34.pyc differ diff --git a/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._structure.cpython-34.pyc b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._structure.cpython-34.pyc new file mode 100644 index 0000000..4baaca9 Binary files /dev/null and b/SF_DeviceSecuritySystem-master/__MACOSX/SF_DeviceSecuritySystem-master/DSSystem/fingerpi/__pycache__/._structure.cpython-34.pyc differ