def exportSettings(settings, file_name): if not os.path.exists("Exports"): os.makedirs("Exports") path = import_export.exportSettings(settings, file_name,lambda text: writeToConsole("exportTasksSettingsConsole", text)) print(path) with app.app_context(): socketio.emit('exportSettingsDone', {"path": path})
def selectedTaskChanged(id, type): task_settings = None print("selectedTaskChanged", id, type) if type == "nback": selected_task = NbackSettings.query.get(id) task_settings = selected_task.as_dict() if type == "eyes": selected_task = EyesSettings.query.get(id) task_settings = selected_task.as_dict() if task_settings["open_sound"]: task_settings[ "open_sound"] = "/sounds/" + task_settings["open_sound"] if task_settings["close_sound"]: task_settings[ "close_sound"] = "/sounds/" + task_settings["close_sound"] print(task_settings) if type == "iaps": selected_task = IAPSSettings.query.get(id) task_settings = selected_task.as_dict() if task_settings: task_settings["type"] = type socketio.emit('changeSelectedTask', task_settings)
def exportTaskData(tasks, file_name, zip, csv): if not os.path.exists("Exports"): os.makedirs("Exports") print("exportTaskData") path = import_export.export_tasks_data(tasks, file_name, zip, csv, lambda text: writeToConsole("exportTasksDataConsole", text)) with app.app_context(): socketio.emit('exportTaskDataDone', {"path": path})
def importSettings(file_info): file = file_info['file'] name = file_info['name'] if not os.path.exists("Exports/tmp"): os.makedirs("Exports/tmp") with open('Exports/tmp/' + name, 'wb') as f: f.write(file) log = import_export.importSettings('Exports/tmp/' + name,lambda text: writeToConsole("importTasksSettingsConsole", text)) shutil.rmtree('Exports/tmp', ignore_errors=True) socketio.emit('importSettingsDone', {'log': log})
def importTasksData(file_info): file = file_info['file'] name = file_info['name'] if not os.path.exists("Exports/tmp"): os.makedirs("Exports/tmp") with open('Exports/tmp/' + name, 'wb') as f: f.write(file) log = import_export.import_tasks_data('Exports/tmp/' + name,lambda text: writeToConsole("importTasksDataConsole", text)) try: shutil.rmtree('Exports/tmp') except Exception as e: print("importTaskData Error:", e) socketio.emit('importTaskDataDone', {'log': log})
def analysisSubjectsChanged(subjects, select, type): task_ids = [] for id in subjects: tasks = Task.query.filter_by(subject_id=id) print(tasks) for t in tasks: print(t) task_ids.append(t.id) socketio.emit('changeTasksAnalysisSelect', { "tasks": task_ids, "bool": select, "type": type })
def exportTaskAnalysis(tasks, dir_name, task_type): if not os.path.exists("Exports/analysis"): os.makedirs("Exports/analysis") path = os.path.abspath("Exports/analysis/" + dir_name) print(tasks) if task_type == "iaps": for task in tasks: sub_id = Task.query.get(int(task["id"])).subject_id task["gender"] = Subject.query.get(sub_id).gender exportAnlaysis.exportIAPS(tasks, path, lambda text: writeToConsole("exportTaskAnalysisConsole", text)) else: exportAnlaysis.export(tasks, path, task_type, lambda text: writeToConsole("exportTaskAnalysisConsole", text)) with app.app_context(): socketio.emit('exportTaskAnalysisDone', {"path": [path]})
def analysisGroupsChanged(groups, select): task_ids = [] for g in groups: subjects = [] q = Subject.query.filter_by(group_id=g) for s in q: subjects.append(s.serial) for id in subjects: tasks = Task.query.filter_by(subject_id=id) print(tasks) for t in tasks: print(t) task_ids.append(t.id) socketio.emit('changeTasksAnalysisSelect', { "tasks": task_ids, "bool": select })
def selectedAnalysisChanged(): taskid = request.args.get('taskid') type = request.args.get('type') group_by_interval = request.args.get('group_by_interval') == 'true' interval = request.args.get('interval') print(taskid, type, group_by_interval, interval) if not taskid: return jsonify({"data": [], "clicks": [], "states": [], "type": type}) if taskid == None: socketio.emit('changeAnalysisData', { "data": [], "clicks": [], "type": type }) return if group_by_interval: interval_value = int(interval) else: interval_value = 1 taskData = influx.getTaskDataV2("task" + str(taskid), group_by_interval, interval_value) print("Got Data") if type == "nback": taskClicks = influx.getNbackTaskClicks("task" + str(taskid)) print("Got Clicks") return jsonify({"data": taskData, "clicks": taskClicks, "type": type}) if type == "iaps": taskClicks = influx.getIAPSTaskClicks("task" + str(taskid)) print(taskClicks) return jsonify({"data": taskData, "clicks": taskClicks, "type": type}) if type == "eyes": states = influx.getEyesStatesTimes("task" + str(taskid)) print(states) return jsonify({"data": taskData, "states": states, "type": type})
def selectedAnalysisChanged(taskid, type, group_by_interval, interval): print(group_by_interval, interval) if taskid == None: socketio.emit('changeAnalysisData', { "data": [], "clicks": [], "type": type }) return if group_by_interval: interval_value = int(interval) else: interval_value = 1 taskData = influx.getTaskDataV2("task" + str(taskid), group_by_interval, interval_value) print("Got Data") if type == "nback": taskClicks = influx.getNbackTaskClicks("task" + str(taskid)) print("Got Clicks") socketio.emit('changeAnalysisData', { "data": taskData, "clicks": taskClicks, "type": type }) print("Data Sent!!!!!!!!!!!!!!!") if type == "iaps": taskClicks = influx.getIAPSTaskClicks("task" + str(taskid)) print(taskClicks) socketio.emit('changeAnalysisData', { "data": taskData, "clicks": taskClicks, "type": type }) if type == "eyes": states = influx.getEyesStatesTimes("task" + str(taskid)) print(states) socketio.emit('changeAnalysisData', { "data": taskData, "states": states, "type": type })
def setMidContent(content): with app.app_context(): socketio.emit('setContent', {'top': "", 'mid': content, 'bot': ""})
def setIAPSWaitVisibility(bool): with app.app_context(): print("setIAPSWaitVisibility", bool, boolToHTMLDisplay(bool)) socketio.emit('setIAPSWaitVisibility', boolToHTMLDisplay(bool))
def setIAPSKeyChoosingVisibility(bool): with app.app_context(): socketio.emit('setIAPSKeyChoosingVisibility', boolToHTMLDisplay(bool))
def setEndVisibility(bool): with app.app_context(): socketio.emit('setEndVisibility', boolToHTMLDisplay(bool))
def selectedGroupChanged(id): selected_group = Group.query.get(id) socketio.emit('changeSelectedGroup', { "name": selected_group.name, "desc": selected_group.description })
def selectedSubjectChanged(id): selected_subject = Subject.query.get(id) socketio.emit('changeSelectedSubjectData', selected_subject.as_dict())
def setGridContent(top, mid, bot): with app.app_context(): socketio.emit('setContent', {'top': top, 'mid': mid, 'bot': bot})
def setCrossVisibility(bool): with app.app_context(): socketio.emit('setContentVisibility', boolToHTMLDisplay(bool)) if bool: socketio.emit('setContent', {'top': "", 'mid': '+', 'bot': ""})
def sendContactQuality(data): with app.app_context(): socketio.emit('contactQuality', data)
def sendBandPower(data): with app.app_context(): socketio.emit('bandPower', data)
def exportSubjects(subjects, file_name): if not os.path.exists("Exports"): os.makedirs("Exports") path = import_export.exportSubjects(subjects, file_name,lambda text: writeToConsole("exportSubjectsConsole", text)) socketio.emit('exportSubjectsDone', {"path": path})
def setIAPSContent(content): with app.app_context(): socketio.emit('setIAPSContent', {"src": content})
def setInstructionsData(data): with app.app_context(): print("setInstructionsData", data) socketio.emit('setInstructionsData', data)
def writeProgressToExportAnalysisConsole(text): with app.app_context(): socketio.emit('exportTaskAnalysisConsole', text) socketio.sleep(0.1)
def writeToConsole(event, text): with app.app_context(): socketio.emit(event, text) socketio.sleep(0.1)