//call if study is over
 public static void closeIfOpen()
 {
     if (instance != null)
     {
         instance.sw.Close();
         Debug.Log("Finished Record");
         instance = null;
     }
 }
 public void OnButtonPress()
 {
     if (_material != null)
     {
         if (_material.color == MyRed)
         {
             print(transform.parent.gameObject.name + "Button Pressed");
             SaveClickData.Save();
             Variables.ClickPositions.Add(Variables.ClickPosition);
             OnButtonPressAction();
         }
     }
 }
Exemple #3
0
    private void ButtonMissed()
    {
        isButtonMissed      = true;
        Variables.ClickTime = Variables.GetCurrentUnixTimestampMillis();
        Variables.MissedTimeSinceLastHit = (Variables.Times.Count > 0)
            ? (Variables.GetCurrentUnixTimestampMillis() - Variables.MinusTime) -
                                           Variables.Times[Variables.Times.Count - 1]
            : 0;

        if (Variables.MissedTimeSinceLastHit >= 30)
        {
            print(transform.parent.gameObject.name + "Button Missed");
            SaveClickData.Save();
        }
    }
Exemple #4
0
 public void OnApplicationQuit()
 {
     SaveClickData.closeIfOpen();
     SaveQuestionnaire.CloseIfOpen();
     SaveHandPosition.closeIfOpen();
 }
    public static void Save()
    {
        if (instance == null)
        {
            instance = new SaveClickData();
        }

        string output = "";

        var sample = Variables.SampleNumber;

        Variables.SampleNumber++;

        var unixTIme = Variables.GetCurrentUnixTimestampMillis();

        var SubjectID             = Variables.UserId;
        var TargetNo              = Variables.ButtonNames[Variables.NextIndex];
        var CurrentHandGameObject =
            instance._objects.HandController.GetComponent <GetHandMovement>().GetCurrentHand().name;
        var displacement = CurrentHandGameObject.Split('_')[3];
        var texture      = CurrentHandGameObject.Split('_')[4];

        var amplitude = Variables.Amplitude;

        var buttonWidth = Variables.ButtonWidthModifier;

        var ID = Mathf.Log(amplitude / (buttonWidth) + 0.5f, 2);



        bool Hit = !Variables.ButtonMissedFlag;

        if (Hit)
        {
            if (_repetitionDict.ContainsKey(ID))
            {
                _repetitionDict[ID]++;
            }
            else
            {
                _repetitionDict.Add(ID, 1);
            }
        }


        var Repetition = (int)(_repetitionDict[ID] / 16) + 1;


        var duration = Hit ? Variables.Duration: Variables.MissedTimeSinceLastHit;

        var throughput = Throughput.CalculateTp(ID, Variables.DurationArray.ToArray());
        var posTargetX = TargetNo.transform.localPosition.x;
        var posTargetZ = TargetNo.transform.localPosition.z;

        var posFingerX = Variables.ClickPositionX;
        var posFingerZ = Variables.ClickPositionY;

        var distance = Mathf.Sqrt(Mathf.Pow(posTargetX - posFingerX, 2) + Mathf.Pow(posTargetZ - posFingerZ, 2));



        output += sample + CSV_SEPARATOR + unixTIme + CSV_SEPARATOR + SubjectID + CSV_SEPARATOR +
                  CurrentHandGameObject + CSV_SEPARATOR + texture + CSV_SEPARATOR + displacement + CSV_SEPARATOR + ID +
                  CSV_SEPARATOR + buttonWidth + CSV_SEPARATOR + amplitude + CSV_SEPARATOR + duration + CSV_SEPARATOR +
                  TargetNo.name + CSV_SEPARATOR + Hit + CSV_SEPARATOR + Repetition + CSV_SEPARATOR + throughput + CSV_SEPARATOR + posTargetX +
                  CSV_SEPARATOR + posTargetZ + CSV_SEPARATOR + posFingerX + CSV_SEPARATOR + posFingerZ +
                  CSV_SEPARATOR + distance + CSV_SEPARATOR + Variables.LastRoundFailed;


        instance.sw.Write(output + "\r\n");
        instance.sw.Flush();
    }