void Start() { Saving = new DataSaving(); save = Saving.Load(); score = 0; StartCoroutine(pauseStart()); }
public void Stop() { _guardDataSaver.Stop(); _tokenSource.Cancel(); _taskForGuardDataSaver.Wait(); if (_report.Count != 0) { DataSaving?.Invoke(); } }
void Start() { cutSceneAnimator = GetComponent <Animator>(); cutSceneSource = GetComponent <AudioSource>(); Saving = new DataSaving(); save = Saving.Load(); scoreText.text = "Total Score\n------------\n" + Math.Round(save.OceanScore + save.SkyScore + save.SpaceScore); }
public void Start() { _tokenSource = new CancellationTokenSource(); var cancellation = _tokenSource.Token; _taskForGuardDataSaver = new Task((token) => { CancellationToken t = (CancellationToken)token; _guardDataSaver = new Guard( actionToDoEveryTick: () => DataSaving?.Invoke(), secondsToCountdown: _dataSavingIntervalSec ); _guardDataSaver.Start(); }, cancellation); _taskForGuardDataSaver.Start(); }
public void ThreadLoop() { DataSaving.saveSimulatorData(sim_, follow_); }
//Writing out pseudo in meantime //trialInfo[i] has: [w,color,responseTime, correct, noResponse, isCongruent] //Congruent_correct = [isCongruent=true, correct true] //Congruent_errors = [isCongruent=true, correct false] //Congruent_accuracy = Congruent_correct / trialInfo.Length //Congruent_RT = SUM[isCongruent=true,responseTime] / trialInfo.Length //Just a thought,split trialInfo into chunks of congruent and incongruent for storing this data. //Incongruent_correct = [isCongruent=false, correct true] //Incongruent_errors = [isCongruent=false, correct false] //Incongruent_accuracy= Congruent_false / trialInfo.Length //Incongruent_RT = SUM[isCongruent=true,responseTime] / trialInfo.Length // Save the averaged data over ALL trials and ALL blocks of this test public void saveFullTest() { // Save the full test data track preOrPost = S.banana[(int)main.track.Pretest] == true ? track.Pretest : track.PostTest; //Data to collect throughout running of algorithm int c_c = 0; int c_e = 0; int ic_c = 0; int ic_e = 0; float cRT_total = 0f; float iRT_total = 0f; //5*48 (160 congruent, 80 incongruent) int n_c_trials = 160; int n_i_trials = 80; foreach (trialInfo[] t in S.blocks) { foreach (trialInfo i in t) { //Add up correct/incorrect answers. Sum total response times if (i.isCongruent) { if (i.correct) { c_c++; } else { c_e++; } cRT_total += i.responseTime; } else { if (i.correct) { ic_c++; } else { ic_e++; } iRT_total += i.responseTime; } } } float Congruent_Accuracy = c_c / n_c_trials; float Incongruent_Accuracy = ic_c / n_i_trials; float CongruentRT = cRT_total / n_c_trials; float InCongruentRT = iRT_total / n_i_trials; string[] info = { c_c.ToString(), c_e.ToString(), Congruent_Accuracy.ToString(), CongruentRT.ToString(), ic_c.ToString(), ic_e.ToString(), Incongruent_Accuracy.ToString(), InCongruentRT.ToString(), n_c_trials.ToString(), n_i_trials.ToString() }; // System.DateTime.Today.ToString(), // etc. DateTime timeStart, timeStop = DateTime.Today; // Initialize data headers var no_commas = S.questions.questions.Select(s => String.Concat("MIND_", String.Concat(s.Where <char>(c => c != ',')))); var media_no_commas = S.MediaQuestions.questions.Select(s => String.Concat("MediaUse_", String.Concat(s.Where <char>(c => c != ',')))); //new var attention_no_commas = S.AttentionQuestions.questions.Select(s => String.Concat("AT_", String.Concat(s.Where <char>(c => c != ',')))); //new var paces_no_commas = S.PacesQuestions.questions.Select(s => String.Concat("PACES_", String.Concat(s.Where <char>(c => c != ',')))); //new var oldPreHeader = DataSaving.StoopHeaderPre; DataSaving.StoopHeaderPre = media_no_commas.Concat(paces_no_commas).Concat(no_commas).Concat(oldPreHeader).Concat(attention_no_commas).ToArray(); var oldPostHeader = DataSaving.StoopHeaderPost; DataSaving.StoopHeaderPost = oldPostHeader.Concat(attention_no_commas).Concat(paces_no_commas).Concat(no_commas).ToArray(); // Save diff data for pre or post if (preOrPost == track.Pretest) { // media exposure, paces, mindfulness, stroop, attention DataSaving.computerDistance = S.inputSend.happy[(int)HeaderType.Computer_Distance]; S.inputSend.happy[(int)HeaderType.DOT] = DateTime.Now.ToString(); var BetterHappy = S.inputSend.happy.Take(DataSaving.InfoHeaderPre.Length).ToArray(); //Reorganize Media question results var t = S.MediaData.happy; var media = new string[] { t[2], t[3], t[4], t[5], t[0], t[1] }; var playedBefore = new string[] { t[t.Length - 1] }; DataSaving.CurrentTrialType = TrialType.Pretest; DataSaving.SaveData(S.inputSend.happy[(int)HeaderType.ID], BetterHappy, media.Concat(S.PacesData.happy).Concat(S.NotAdrians.happy).Concat(playedBefore).Concat(info).Concat(S.AttentionData.happy).ToArray()); } else if (preOrPost == track.PostTest) { // stroop, attention, paces, mindfulness, demographics // Demographics data? DataSaving.sex = S.inputSend.happy[(int)HeaderType.Sex]; DataSaving.version = "n/a"; DataSaving.birthdate = S.inputSend.happy[(int)HeaderType.DOB]; DataSaving.computerDistance = S.inputSend.happy[(int)HeaderType.Computer_Distance]; // Calculate Age DateTime result; if (DateTime.TryParse(DataSaving.birthdate, out result)) { // Compute age DateTime today = DateTime.Today; TimeSpan dayDiff = today.Subtract(result); double years = dayDiff.TotalDays / 365.25; S.inputSend.happy[(int)HeaderType.Age] = years.ToString("##.###"); } else { S.inputSend.happy[(int)HeaderType.Age] = ""; } var BetterHappy = CalculateTime(S.inputSend.happy, track.PostTest); // Remove pre-headers from demographics var newHappy = BetterHappy.Skip(DataSaving.InfoHeaderPre.Length).ToArray(); DataSaving.CurrentTrialType = TrialType.Posttest; DataSaving.SaveData(S.inputSend.happy[(int)HeaderType.ID], newHappy, info.Concat(S.AttentionData.happy).Concat(S.PacesData.happy).Concat(S.NotAdrians.happy).ToArray()); } // Also save single trial data DataSaving.SaveLearningCurveData(S.inputSend.happy[(int)HeaderType.ID], S.learningCurveDataString); learningCurveDataString = ""; }