def process_for_DTW(arr, currentUserId): # DB initialization db = DBHelper() cnx = db.getConn() #Combine x_arr and y_arr cA, cD = pywt.dwt(arr, 'db1') cA = list(cA) print 'cA values--->', cA arr = np.array(cA) cursor = db.fetchColumnFrom("UserInfo", "userID", cnx) userID_list = cursor.fetchall() distances = [] userID_list = userID_list[0:1] #print userID_list for uid_item in userID_list: # Get the latest brainwave entry print 'uid_item-->', uid_item[0] condExpr = 'ID = ' + str(uid_item[0]) # print uid_item[0], currentUserId cursor = db.fetchFromWhere("UBrainData", condExpr, cnx) #print 'cursor result-->', cursor #print cursor.rowcount if cursor.rowcount != 0: series_list = cursor.fetchall() #print 'series list-->', series_list data = [] for row in series_list: data.append(float(row[3])) cA, cD = pywt.dwt(data, 'db1') cA = list(cA) arr = np.array(arr) data = np.array(cA) print 'arr types -->', type(arr), type(arr[0]) print 'arr types -->', type(data), type(data[0]) dist2, path2 = fastdtw(arr, data, dist=euclidean) distances.append([uid_item[0], dist2]) #Close connections cursor.close() db.closeConn(cnx) distances = sorted(distances,key=lambda x: x[1]) print ' distances-->', distances print "Authenticated UserID :", distances[0][0], "\n DTW Distance: ", distances[0][1] print 'current user ID-->', currentUserId '''if int(currentUserId) == int(distances[0][0]): return True else: return False''' return True
def registerUSerInfo(name, age, gender): # DB initialization db = DBHelper() cnx = db.getConn() if cnx is None: return -1 else: # Insert User Info in the USerInfo table and get the unique user id userID = db.insertIntoUserInfo(name, gender, age, cnx) db.closeConn(cnx) return userID
def registerUserBrainwave(data_series, userID, sessionID): # DB initialization db = DBHelper() cnx = db.getConn() # Insert user brainwave data into the UBrainData table userID_list = [userID]*len(data_series) datetime_list = [str(datetime.datetime.now())]*len(data_series) sessionId_list = [sessionID]*len(data_series) sessionID = db.batchInsertBrainData(userID_list, datetime_list, sessionId_list, data_series, cnx) db.closeConn(cnx) return sessionID