Ejemplo n.º 1
0
    /*...*/


    //Logs all Layer Data and Eye data like position, speed etc.
    public void logLayerData()
    {
        int LayerCountData = 0;

        foreach (GameObject i in Layers)
        {
            if (LayerCountData < 4)
            {
                LayerName [LayerCountData]                     = i.GetComponent <LayerValues> ().getName();
                Layerspeed [LayerCountData]                    = i.GetComponent <LayerValues> ().getRealSpeed();
                LayerPosX [LayerCountData]                     = i.GetComponent <LayerValues> ().getXPosLayer();
                LayerPosY [LayerCountData]                     = i.GetComponent <LayerValues> ().getYPosLayer();
                LayerDirVec [LayerCountData]                   = i.GetComponent <LayerValues> ().getRichtungsvectorLayer();
                EyeSpeed [LayerCountData]                      = i.GetComponent <LayerValues> ().getEyeSpeed();
                EyePosX [LayerCountData]                       = i.GetComponent <LayerValues> ().getEyeXPos();
                EyePosY [LayerCountData]                       = i.GetComponent <LayerValues> ().getEyeYPos();
                EyeDirVec [LayerCountData]                     = i.GetComponent <LayerValues> ().getRichtungsVecEye();
                AngelDirLetterDirEye [LayerCountData]          = i.GetComponent <LayerValues> ().getDirwinkel();
                NormDirWinkel [LayerCountData]                 = i.GetComponent <LayerValues> ().getNormDirWinkel();
                DistLetterEyePOR [LayerCountData]              = i.GetComponent <LayerValues> ().getDistanceEyeAndLayerPOR();
                SpeedDivision [LayerCountData]                 = i.GetComponent <LayerValues> ().getSpeedDivision();
                AngleCameraLetter [LayerCountData]             = i.GetComponent <LayerValues> ().getangleCameraLayer();
                LeftGazeDirAngleCameraLetter [LayerCountData]  = i.GetComponent <LayerValues> ().getangleleftGazeDirection();
                RightGazeDirAngleCameraLetter [LayerCountData] = i.GetComponent <LayerValues> ().getangleRightGazeDirection();
                MatchValue [LayerCountData]                    = i.GetComponent <LayerValues> ().getMatchValue();
                MatchValueGewichtet [LayerCountData]           = i.GetComponent <LayerValues> ().getMatchValueGewichtet();
                LayerCountData++;
            }
        }

        for (int i = 0; i < 4; i++)
        {
            LayerCounterGewichtet [i] = Layers [i].GetComponent <LayerValues> ().getMatchCounterGewichtet();
            EyeLogger.getInstance().log(Time.realtimeSinceStartup, participantNumber, LayerName [i], LayerPosX [i].ToString("F5"), LayerPosY [i].ToString("F5"), EyePosX [i].ToString("F5"), EyePosY [i].ToString("F5"), DistLetterEyePOR [i].ToString("F5"), Layerspeed [i].ToString("F5"), EyeSpeed [i].ToString("F5"), SpeedDivision [i], LayerDirVec [i].ToString("F5"), EyeDirVec [i].ToString("F5"), NormDirWinkel [i], AngleCameraLetter [i].ToString("F5"), LeftGazeDirAngleCameraLetter [i], RightGazeDirAngleCameraLetter [i], MatchValue [i], MatchValueGewichtet [i], "", "", LayerCounterGewichtet [i]);
        }
        EyeLogger.getInstance().log("");
    }
Ejemplo n.º 2
0
    /*...*/


    void Start()
    {
        // Get eyetracker
        smiInstance = SMI.SMIEyeTrackingUnity.Instance;


        //init  of the keybord
        keyBoardAlpha = GameObject.Find("keyboard_Alpha");

        //init of the feedback text under the keyboard
        Text = GameObject.Find("Satz");
        Satz = Text.GetComponent <Text>();

        //inti the Wordlayer which displays the words to write
        WordLayer = GameObject.Find("WordLayer");
        WordLayer.SetActive(false);
        Word = WordLayer.transform.GetChild(0).GetComponent <Text> ();

        //save all Layers in an Array
        Layers = new GameObject[keyBoardAlpha.transform.childCount];

        //saves all Letters in an Array
        AllLetter = new GameObject[32];

        //fency Soundclip to show the end of the Worddisplaytime
        AudioSource.clip = SoundClip;


        //init words of Session 1 the trainingssession

        Word1  = new string[] { "D", "A", "S", "S" };
        Word2  = new string[] { "P", "R", "A", "L", "L" };
        Word3  = new string[] { "V", "O", "M" };
        Word4  = new string[] { "W", "H", "I", "S", "K", "Y" };
        Word5  = new string[] { "F", "L", "O", "G" };
        Word6  = new string[] { "X", "Y", "Z" };
        Word7  = new string[] { "Q", "U", "A", "X" };
        Word8  = new string[] { "D", "E", "N" };
        Word9  = new string[] { "J", "E", "T" };
        Word10 = new string[] { "Z", "U" };
        Word11 = new string[] { "B", "R", "U", "C", "H" };
        Word12 = new string[] { "J", "E", "D", "E", "R" };
        Word13 = new string[] { "B", "A", "Y", "E", "R" };
        Word14 = new string[] { "W", "A", "C", "K", "E", "R", "E" };
        Word15 = new string[] { "V", "E", "R", "T", "I", "L", "G", "T" };
        Word16 = new string[] { "B", "E", "Q", "U", "E", "M" };
        Word17 = new string[] { "Z", "W", "O" };
        Word18 = new string[] { "K", "A", "L", "B", "S", "H", "A", "X", "E" };

        Session1 = new string[] { string.Join("", Word1), string.Join("", Word2), string.Join("", Word3), string.Join("", Word4), string.Join("", Word5), string.Join("", Word6), string.Join("", Word7), string.Join("", Word8), string.Join("", Word9), string.Join("", Word10), string.Join("", Word11), string.Join("", Word12), string.Join("", Word13), string.Join("", Word14), string.Join("", Word15), string.Join("", Word16), string.Join("", Word17), string.Join("", Word18) };



        //randomize the order of Words in the Sessions
        Session1.ListShuffle <string> ();



        //Initialisation of all important Eye and Letter data
        EyeSpeed                      = new float[32];
        EyePosX                       = new float[32];
        EyePosY                       = new float[32];
        EyeDirVec                     = new Vector2 [32];
        Letterspeed                   = new float [32];
        LetterPosX                    = new float[32];
        LetterPosY                    = new float[32];
        LetterDirVec                  = new Vector2 [32];
        LetterName                    = new string[32];
        Layerspeed                    = new float [4];
        LayerPosX                     = new float[4];
        LayerPosY                     = new float[4];
        LayerDirVec                   = new Vector2 [4];
        LayerName                     = new string[4];
        AngelDirLetterDirEye          = new float[32];
        DistLetterEyePOR              = new float [32];
        SpeedDivision                 = new float[32];
        AngleCameraLetter             = new float[32];
        LeftGazeDirAngleCameraLetter  = new float[32];
        RightGazeDirAngleCameraLetter = new float[32];
        NormDirWinkel                 = new float [32];
        MatchValue                    = new float[32];
        MatchValueGewichtet           = new float [32];
        MatchValueGewichtet2          = new float [32];
        MatchCounter                  = new float [32];
        MatchCounterWhole             = new float[32];
        MatchCounterAfterLayer        = new float[32];
        MatchCounterAfterLayerGewi2   = new float[32];
        MatchCounterGewichtet         = new float [32];
        MatchCounterGewichtet2        = new float [32];
        LayerMatchValueGewichtet      = new float [4];
        LayerCounter                  = new float[4];
        LayerCounterGewichtet         = new float[4];
        Letters                       = new GameObject[8];


        //Init Logger für Augendaten
        EyeLogger.getInstance().initLogger(participantNumber);
        EyeLogger.getInstance().log("timestamp", "ParticipantNumber", "Name", "ObjPosX", "ObjPosY", "EyePosX ", "EyePosY", "DistObjEyePOR", "Objspeed", " EyeSpeed", "SpeedDivision ", "ObjDirVec", "EyeDirVec", "normierDirectionAngle", "AngleCameraObj", "LeftGazeDirAngleObj", "RightGazeDirAngleObj", "MatchValue", "MatchValueGewichtet", "LetterMatchCounter", "LetterMatchCounterGewichtet", "LayerCunterGewichtet", "MatchCounterWhole", "durchgang", "MatchValueGewichtet2", "MatchCounterGewichtet2", "MatchCounterAfterLayerSelect", "MatchCounterAfterLayerSelectGewi2");


        //Init Logger für Studiendaten
        WritingLogger.getInstance().initLogger(participantNumber);
        WritingLogger.getInstance().log("timestamp", "ParticipantNumber", "maxLayertime", " maxtime ", "SessionNr", "StepNumber", "WantedKey", "PressedKey", "CorrectKeyPressed", "TimeBetweenLetterAnimationAndItsSelection", "TimeBetweenSelections", "TimeBetweenLastLetterSelectedAndNewOne", "NumberOfRound", "SelectedKeyGewi2", "CorrectKeyGewi", "SelectedKeyAfterLayerSelected", "correctKeyAfterLayer", "SelectedKeyAfterLayerGewi2", "correctKeyAfterLayerGewi2");



        //Write all Letters in an Array AllLetter[i], i = [0...31] by saving the children of the Layer [j] , j =[0...3]

        for (int j = 0; j < keyBoardAlpha.transform.childCount; j++)
        {
            if (keyBoardAlpha.transform.GetChild(j).transform.tag == "Layers")
            {
                Layers [j]   = keyBoardAlpha.transform.GetChild(j).transform.gameObject;
                keyboardKeys = new GameObject[Layers [j].transform.childCount];
                for (int i = 0; i < Layers [j].transform.childCount; i++)
                {
                    if (Layers [j].transform.GetChild(i).transform.tag == "KeyboardKey")
                    {
                        keyboardKeys [i] = Layers [j].transform.GetChild(i).transform.gameObject;

                        AllLetter[lettercount] = keyboardKeys[i];
                        lettercount++;
                    }
                }
            }
        }
    }