static void engine_AffectivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e) { EmoState es = e.emoState; longTermExcitementScore = (float)es.AffectivGetExcitementLongTermScore(); shortTermExcitementScore = (float)es.AffectivGetExcitementShortTermScore(); for (int i = 0; i < affAlgoList.Length; ++i) { isAffActiveList[i] = es.AffectivIsActive(affAlgoList[i]); } meditationScore = (float)es.AffectivGetMeditationScore(); frustrationScore = (float)es.AffectivGetFrustrationScore(); boredomScore = (float)es.AffectivGetEngagementBoredomScore(); }
private static void engine_AffectivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e) { EmoState emoState = e.emoState; EmoAffectiv.longTermExcitementScore = emoState.AffectivGetExcitementLongTermScore(); EmoAffectiv.shortTermExcitementScore = emoState.AffectivGetExcitementShortTermScore(); for (int i = 0; i < EmoAffectiv.affAlgoList.Length; i++) { EmoAffectiv.isAffActiveList[i] = emoState.AffectivIsActive(EmoAffectiv.affAlgoList[i]); } EmoAffectiv.meditationScore = emoState.AffectivGetMeditationScore(); EmoAffectiv.frustrationScore = emoState.AffectivGetFrustrationScore(); EmoAffectiv.boredomScore = emoState.AffectivGetEngagementBoredomScore(); }
/// <summary> /// Main update event for AFFECTION data /// </summary> private void engine_AffectivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e) { EmoState es = e.emoState; EdkDll.EE_AffectivAlgo_t[] affAlgoList = { EdkDll.EE_AffectivAlgo_t.AFF_ENGAGEMENT_BOREDOM, EdkDll.EE_AffectivAlgo_t.AFF_EXCITEMENT, EdkDll.EE_AffectivAlgo_t.AFF_FRUSTRATION, EdkDll.EE_AffectivAlgo_t.AFF_MEDITATION, }; Boolean[] isAffActiveList = new Boolean[affAlgoList.Length]; Single longTermExcitementScore = es.AffectivGetExcitementLongTermScore(); Single shortTermExcitementScore = es.AffectivGetExcitementShortTermScore(); for (int i = 0; i < affAlgoList.Length; ++i) { isAffActiveList[i] = es.AffectivIsActive(affAlgoList[i]); } Single meditationScore = es.AffectivGetMeditationScore(); Single frustrationScore = es.AffectivGetFrustrationScore(); Single boredomScore = es.AffectivGetEngagementBoredomScore(); double rawScoreEc = 0, rawScoreMd = 0, rawScoreFt = 0, rawScoreEg = 0; double minScaleEc = 0, minScaleMd = 0, minScaleFt = 0, minScaleEg = 0; double maxScaleEc = 0, maxScaleMd = 0, maxScaleFt = 0, maxScaleEg = 0; double scaledScoreEc = 0, scaledScoreMd = 0, scaledScoreFt = 0, scaledScoreEg = 0; // Short Excitement es.AffectivGetExcitementShortTermModelParams(out rawScoreEc, out minScaleEc, out maxScaleEc); if (minScaleEc != maxScaleEc) { if (rawScoreEc < minScaleEc) { scaledScoreEc = 0; } else if (rawScoreEc > maxScaleEc) { scaledScoreEc = 1; } else { scaledScoreEc = (rawScoreEc - minScaleEc) / (maxScaleEc - minScaleEc); } } // Short Engagaement es.AffectivGetEngagementBoredomModelParams(out rawScoreEg, out minScaleEg, out maxScaleEg); if (minScaleEg != maxScaleEg) { if (rawScoreEg < minScaleEg) { scaledScoreEg = 0; } else if (rawScoreEg > maxScaleEg) { scaledScoreEg = 1; } else { scaledScoreEg = (rawScoreEg - minScaleEg) / (maxScaleEg - minScaleEg); } //Console.WriteLine("Affectiv Engagement : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreEg, minScaleEg, maxScaleEg, scaledScoreEg); } // Meditation es.AffectivGetMeditationModelParams(out rawScoreMd, out minScaleMd, out maxScaleMd); if (minScaleMd != maxScaleMd) { if (rawScoreMd < minScaleMd) { scaledScoreMd = 0; } else if (rawScoreMd > maxScaleMd) { scaledScoreMd = 1; } else { scaledScoreMd = (rawScoreMd - minScaleMd) / (maxScaleMd - minScaleMd); } //Console.WriteLine("Affectiv Meditation : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreMd, minScaleMd, maxScaleMd, scaledScoreMd); } // Frustration es.AffectivGetFrustrationModelParams(out rawScoreFt, out minScaleFt, out maxScaleFt); if (maxScaleFt != minScaleFt) { if (rawScoreFt < minScaleFt) { scaledScoreFt = 0; } else if (rawScoreFt > maxScaleFt) { scaledScoreFt = 1; } else { scaledScoreFt = (rawScoreFt - minScaleFt) / (maxScaleFt - minScaleFt); } //Console.WriteLine("Affectiv Frustration : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreFt, minScaleFt, maxScaleFt, scaledScoreFt); } // If recording is enabled... if (this._recording) { //Append SCALED affectiv values _ondra.AppendAffectivData(_stopwatch.Elapsed.TotalSeconds, scaledScoreEc, scaledScoreEg, scaledScoreMd, scaledScoreFt); } }
static void engine_AffectivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e) { //TextWriter file = new StreamWriter(filen, true); AffectivValue af = new AffectivValue(); EmoState es = e.emoState; Single timeFromStart = es.GetTimeFromStart(); EdkDll.EE_AffectivAlgo_t[] affAlgoList = { EdkDll.EE_AffectivAlgo_t.AFF_ENGAGEMENT_BOREDOM, EdkDll.EE_AffectivAlgo_t.AFF_EXCITEMENT, EdkDll.EE_AffectivAlgo_t.AFF_FRUSTRATION, EdkDll.EE_AffectivAlgo_t.AFF_MEDITATION, }; Boolean[] isAffActiveList = new Boolean[affAlgoList.Length]; Single longTermExcitementScore = es.AffectivGetExcitementLongTermScore(); Single shortTermExcitementScore = es.AffectivGetExcitementShortTermScore(); for (int i = 0; i < affAlgoList.Length; ++i) { isAffActiveList[i] = es.AffectivIsActive(affAlgoList[i]); } Single meditationScore = es.AffectivGetMeditationScore(); Single frustrationScore = es.AffectivGetFrustrationScore(); Single boredomScore = es.AffectivGetEngagementBoredomScore(); double rawScoreEc = 0, rawScoreMd = 0, rawScoreFt = 0, rawScoreEg = 0; double minScaleEc = 0, minScaleMd = 0, minScaleFt = 0, minScaleEg = 0; double maxScaleEc = 0, maxScaleMd = 0, maxScaleFt = 0, maxScaleEg = 0; double scaledScoreEc = 0, scaledScoreMd = 0, scaledScoreFt = 0, scaledScoreEg = 0; #region Excitement es.AffectivGetExcitementShortTermModelParams(out rawScoreEc, out minScaleEc, out maxScaleEc); if (minScaleEc != maxScaleEc) { if (rawScoreEc < minScaleEc) { scaledScoreEc = 0; } else if (rawScoreEc > maxScaleEc) { scaledScoreEc = 1; } else { scaledScoreEc = (rawScoreEc - minScaleEc) / (maxScaleEc - minScaleEc); } // Console.WriteLine("Affectiv Short Excitement: Raw Score {0:f7}", rawScoreEc); // Console.WriteLine("Affectiv Short Excitement: Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreEc, minScaleEc, maxScaleEc, scaledScoreEc); af.shortTermExcitementScore = (float)rawScoreEc; // file.Write("Excitement :" + rawScoreEc + " "); // file.Close(); } #endregion #region Boredom es.AffectivGetEngagementBoredomModelParams(out rawScoreEg, out minScaleEg, out maxScaleEg); if (minScaleEg != maxScaleEg) { if (rawScoreEg < minScaleEg) { scaledScoreEg = 0; } else if (rawScoreEg > maxScaleEg) { scaledScoreEg = 1; } else { scaledScoreEg = (rawScoreEg - minScaleEg) / (maxScaleEg - minScaleEg); } // Console.WriteLine("Affectiv Engagement : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreEg, minScaleEg, maxScaleEg, scaledScoreEg); af.boredom = rawScoreEg; //file.Write("Engagement: " + rawScoreEg + " "); } #endregion #region Meditation es.AffectivGetMeditationModelParams(out rawScoreMd, out minScaleMd, out maxScaleMd); if (minScaleMd != maxScaleMd) { if (rawScoreMd < minScaleMd) { scaledScoreMd = 0; } else if (rawScoreMd > maxScaleMd) { scaledScoreMd = 1; } else { scaledScoreMd = (rawScoreMd - minScaleMd) / (maxScaleMd - minScaleMd); } // Console.WriteLine("Affectiv Meditation : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreMd, minScaleMd, maxScaleMd, scaledScoreMd); af.meditation = rawScoreMd; // file.Write(" Meditation :" + rawScoreMd + " "); } #endregion #region Frustration es.AffectivGetFrustrationModelParams(out rawScoreFt, out minScaleFt, out maxScaleFt); if (maxScaleFt != minScaleFt) { if (rawScoreFt < minScaleFt) { scaledScoreFt = 0; } else if (rawScoreFt > maxScaleFt) { scaledScoreFt = 1; } else { scaledScoreFt = (rawScoreFt - minScaleFt) / (maxScaleFt - minScaleFt); } // Console.WriteLine("Affectiv Frustration : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreFt, minScaleFt, maxScaleFt, scaledScoreFt); af.frustration = rawScoreFt; //file.Write("Frustration :" + rawScoreFt + " "); //file.WriteLine(""); //file.Close(); } #endregion af.timeFromStart = timeFromStart; af.longTermExcitement = longTermExcitementScore; af.isAffActiveList = isAffActiveList; Affv.Add(af); /* * * affLog.Write( * "{0},{1},{2},{3},{4},{5},", * timeFromStart, * longTermExcitementScore, shortTermExcitementScore, meditationScore, frustrationScore, boredomScore); * * for (int i = 0; i < affAlgoList.Length; ++i) * { * affLog.Write("{0},", isAffActiveList[i]); * } * * affLog.WriteLine(""); * affLog.Flush(); */ }
static void engine_AffectivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e) { EmoState es = e.emoState; Single timeFromStart = es.GetTimeFromStart(); EdkDll.EE_AffectivAlgo_t[] affAlgoList = { EdkDll.EE_AffectivAlgo_t.AFF_ENGAGEMENT_BOREDOM, EdkDll.EE_AffectivAlgo_t.AFF_EXCITEMENT, EdkDll.EE_AffectivAlgo_t.AFF_FRUSTRATION, EdkDll.EE_AffectivAlgo_t.AFF_MEDITATION, }; Boolean[] isAffActiveList = new Boolean[affAlgoList.Length]; Single longTermExcitementScore = es.AffectivGetExcitementLongTermScore(); Single shortTermExcitementScore = es.AffectivGetExcitementShortTermScore(); for (int i = 0; i < affAlgoList.Length; ++i) { isAffActiveList[i] = es.AffectivIsActive(affAlgoList[i]); } Single meditationScore = es.AffectivGetMeditationScore(); Single frustrationScore = es.AffectivGetFrustrationScore(); Single boredomScore = es.AffectivGetEngagementBoredomScore(); double rawScoreEc = 0, rawScoreMd = 0, rawScoreFt = 0, rawScoreEg = 0; double minScaleEc = 0, minScaleMd = 0, minScaleFt = 0, minScaleEg = 0; double maxScaleEc = 0, maxScaleMd = 0, maxScaleFt = 0, maxScaleEg = 0; double scaledScoreEc = 0, scaledScoreMd = 0, scaledScoreFt = 0, scaledScoreEg = 0; es.AffectivGetExcitementShortTermModelParams(out rawScoreEc, out minScaleEc, out maxScaleEc); if (minScaleEc != maxScaleEc) { if (rawScoreEc < minScaleEc) { scaledScoreEc = 0; } else if (rawScoreEc > maxScaleEc) { scaledScoreEc = 1; } else { scaledScoreEc = (rawScoreEc - minScaleEc) / (maxScaleEc - minScaleEc); } Console.WriteLine("Affectiv Short Excitement: Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreEc, minScaleEc, maxScaleEc, scaledScoreEc); } es.AffectivGetEngagementBoredomModelParams(out rawScoreEg, out minScaleEg, out maxScaleEg); if (minScaleEg != maxScaleEg) { if (rawScoreEg < minScaleEg) { scaledScoreEg = 0; } else if (rawScoreEg > maxScaleEg) { scaledScoreEg = 1; } else { scaledScoreEg = (rawScoreEg - minScaleEg) / (maxScaleEg - minScaleEg); } Console.WriteLine("Affectiv Engagement : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreEg, minScaleEg, maxScaleEg, scaledScoreEg); } es.AffectivGetMeditationModelParams(out rawScoreMd, out minScaleMd, out maxScaleMd); if (minScaleMd != maxScaleMd) { if (rawScoreMd < minScaleMd) { scaledScoreMd = 0; } else if (rawScoreMd > maxScaleMd) { scaledScoreMd = 1; } else { scaledScoreMd = (rawScoreMd - minScaleMd) / (maxScaleMd - minScaleMd); } Console.WriteLine("Affectiv Meditation : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreMd, minScaleMd, maxScaleMd, scaledScoreMd); } es.AffectivGetFrustrationModelParams(out rawScoreFt, out minScaleFt, out maxScaleFt); if (maxScaleFt != minScaleFt) { if (rawScoreFt < minScaleFt) { scaledScoreFt = 0; } else if (rawScoreFt > maxScaleFt) { scaledScoreFt = 1; } else { scaledScoreFt = (rawScoreFt - minScaleFt) / (maxScaleFt - minScaleFt); } Console.WriteLine("Affectiv Frustration : Raw Score {0:f5} Min Scale {1:f5} max Scale {2:f5} Scaled Score {3:f5}\n", rawScoreFt, minScaleFt, maxScaleFt, scaledScoreFt); } affLog.Write( "{0},{1},{2},{3},{4},{5},", timeFromStart, longTermExcitementScore, shortTermExcitementScore, meditationScore, frustrationScore, boredomScore); for (int i = 0; i < affAlgoList.Length; ++i) { affLog.Write("{0},", isAffActiveList[i]); } affLog.WriteLine(""); affLog.Flush(); }
//Update data void AffectivEmoStateUpdated() { if (FEmoState[0] != null) { EmoState es = FEmoState[0]; Single timeFromStart = es.GetTimeFromStart(); mLongTermExcitementScore = es.AffectivGetExcitementLongTermScore(); mShortTermExcitementScore = es.AffectivGetExcitementShortTermScore(); for (int i = 0; i < mAffAlgoList.Length; ++i) { mIsAffActiveList[i] = es.AffectivIsActive(mAffAlgoList[i]); } mMeditationScore = es.AffectivGetMeditationScore(); mFrustrationScore = es.AffectivGetFrustrationScore(); mBoredomScore = es.AffectivGetEngagementBoredomScore(); es.AffectivGetExcitementShortTermModelParams(out mRawScoreEc, out mMinScaleEc, out mMaxScaleEc); if (mMinScaleEc != mMaxScaleEc) { if (mRawScoreEc < mMinScaleEc) { mScaledScoreEc = 0; } else if (mRawScoreEc > mMaxScaleEc) { mScaledScoreEc = 1; } else { mScaledScoreEc = (mRawScoreEc - mMinScaleEc) / (mMaxScaleEc - mMinScaleEc); } } es.AffectivGetEngagementBoredomModelParams(out mRawScoreEg, out mMinScaleEg, out mMaxScaleEg); if (mMinScaleEg != mMaxScaleEg) { if (mRawScoreEg < mMinScaleEg) { mScaledScoreEg = 0; } else if (mRawScoreEg > mMaxScaleEg) { mScaledScoreEg = 1; } else { mScaledScoreEg = (mRawScoreEg - mMinScaleEg) / (mMaxScaleEg - mMinScaleEg); } } es.AffectivGetMeditationModelParams(out mRawScoreMd, out mMinScaleMd, out mMaxScaleMd); if (mMinScaleMd != mMaxScaleMd) { if (mRawScoreMd < mMinScaleMd) { mScaledScoreMd = 0; } else if (mRawScoreMd > mMaxScaleMd) { mScaledScoreMd = 1; } else { mScaledScoreMd = (mRawScoreMd - mMinScaleMd) / (mMaxScaleMd - mMinScaleMd); } } es.AffectivGetFrustrationModelParams(out mRawScoreFt, out mMinScaleFt, out mMaxScaleFt); if (mMaxScaleFt != mMinScaleFt) { if (mRawScoreFt < mMinScaleFt) { mScaledScoreFt = 0; } else if (mRawScoreFt > mMaxScaleFt) { mScaledScoreFt = 1; } else { mScaledScoreFt = (mRawScoreFt - mMinScaleFt) / (mMaxScaleFt - mMinScaleFt); } } } }