Ejemplo n.º 1
0
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})
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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})
Ejemplo n.º 4
0
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})
Ejemplo n.º 5
0
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})
Ejemplo n.º 6
0
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
    })
Ejemplo n.º 7
0
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]})
Ejemplo n.º 8
0
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
    })
Ejemplo n.º 9
0
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})
Ejemplo n.º 10
0
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
        })
Ejemplo n.º 11
0
def setMidContent(content):
    with app.app_context():
        socketio.emit('setContent', {'top': "", 'mid': content, 'bot': ""})
Ejemplo n.º 12
0
def setIAPSWaitVisibility(bool):
    with app.app_context():
        print("setIAPSWaitVisibility", bool, boolToHTMLDisplay(bool))
        socketio.emit('setIAPSWaitVisibility', boolToHTMLDisplay(bool))
Ejemplo n.º 13
0
def setIAPSKeyChoosingVisibility(bool):
    with app.app_context():
        socketio.emit('setIAPSKeyChoosingVisibility', boolToHTMLDisplay(bool))
Ejemplo n.º 14
0
def setEndVisibility(bool):
    with app.app_context():
        socketio.emit('setEndVisibility', boolToHTMLDisplay(bool))
Ejemplo n.º 15
0
def selectedGroupChanged(id):
    selected_group = Group.query.get(id)
    socketio.emit('changeSelectedGroup', {
        "name": selected_group.name,
        "desc": selected_group.description
    })
Ejemplo n.º 16
0
def selectedSubjectChanged(id):
    selected_subject = Subject.query.get(id)
    socketio.emit('changeSelectedSubjectData', selected_subject.as_dict())
Ejemplo n.º 17
0
def setGridContent(top, mid, bot):
    with app.app_context():
        socketio.emit('setContent', {'top': top, 'mid': mid, 'bot': bot})
Ejemplo n.º 18
0
def setCrossVisibility(bool):
    with app.app_context():
        socketio.emit('setContentVisibility', boolToHTMLDisplay(bool))
        if bool:
            socketio.emit('setContent', {'top': "", 'mid': '+', 'bot': ""})
Ejemplo n.º 19
0
def sendContactQuality(data):
    with app.app_context():
        socketio.emit('contactQuality', data)
Ejemplo n.º 20
0
def sendBandPower(data):
    with app.app_context():
        socketio.emit('bandPower', data)
Ejemplo n.º 21
0
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})
Ejemplo n.º 22
0
def setIAPSContent(content):
    with app.app_context():
        socketio.emit('setIAPSContent', {"src": content})
Ejemplo n.º 23
0
def setInstructionsData(data):
    with app.app_context():
        print("setInstructionsData", data)
        socketio.emit('setInstructionsData', data)
Ejemplo n.º 24
0
def writeProgressToExportAnalysisConsole(text):
    with app.app_context():
        socketio.emit('exportTaskAnalysisConsole', text)
        socketio.sleep(0.1)
Ejemplo n.º 25
0
def writeToConsole(event, text):
    with app.app_context():
        socketio.emit(event, text)
        socketio.sleep(0.1)