public void TestAlternative_Csv_02_WithExtensions() { ChangeFormat(TrackerAsset.TraceFormats.csv); asset.setVar("SubCompletableScore", 0.8); asset.Alternative.Unlocked("AlternativeID2", "Answer number 3", AlternativeTracker.Alternative.Question); asset.Flush(); string csv = storage.Load(settings.LogFile); string[] splitted = csv.Split(new string[] { "\r\n" }, StringSplitOptions.None); Assert.IsTrue(splitted[splitted.Length - 2].Contains(",unlocked,question,AlternativeID2,response,Answer number 3,SubCompletableScore,0.8")); }
/// <summary> /// Method for sending the motivation values to the tracker /// </summary> internal void sendMotivationValuesToTracker() { //get the tracker if (tracker == null) { if (AssetManager.Instance.findAssetsByClass("TrackerAsset").Count >= 1) { tracker = (TrackerAsset)AssetManager.Instance.findAssetsByClass("TrackerAsset")[0]; loggingMAs("Found tracker for tracking motivation values!"); } else { //no tracking loggingMAs("No tracker implemented - motivational state is not send to the server"); return; } } if (tracker.CheckHealth()) { loggingMAs(tracker.Health); MotivationAssessmentAssetSettings maas = (MotivationAssessmentAssetSettings)getMAsA().Settings; if (tracker.Login(maas.TrackerName, maas.TrackerPassword)) { loggingMAs("logged in - tracker"); } else { loggingMAs("Maybe you forgot to store name/password for the tracker to the Motivation Assessment Asset Settings."); } } if (tracker.Connected) { tracker.Start(); Dictionary <string, double> ms = getMotivationState().getMotivation(); foreach (string motivationAspect in ms.Keys) { tracker.setVar(motivationAspect, ms[motivationAspect].ToString()); } tracker.Completable.Completed("MotivationAssessmentAsset"); #if !PORTABLE new Thread(() => { //next line: thread is killed after all foreground threads are dead Thread.CurrentThread.IsBackground = true; tracker.Flush(); }).Start(); #else tracker.Flush(); #endif } else { loggingMAs("Not connected to tracker."); } }
/********************** * Static methods * **********************/ /// <summary> /// This method allows to set a Geopoint as extension to the current trace. /// </summary> /// <param name="t">tracker to use</param> /// <param name="lat">latitude</param> /// <param name="lon">longitude</param> public static void setPosition(this TrackerAsset t, double lat, double lon) { if (TR == null) { TR = new ExtensionTransformations(); } t.setVar(Extension.Location.ToString().ToLower(), lat + "," + lon); }
/********************** * Static methods * **********************/ /// <summary> /// This method allows to set a Geopoint as extension to the current trace. /// </summary> /// <param name="t">tracker to use</param> /// <param name="lat">latitude</param> /// <param name="lon">longitude</param> public static void setGeopoint(this TrackerAsset t, float lat, float lon) { if (TR == null) { TR = new ExtensionTransformations(); } t.setVar(Extension.Geopoint.ToString().ToLower(), lat + "," + lon); }
/// <summary> /// This method allows to set a Geopoint as extension to the current trace. /// </summary> /// <param name="t">tracker to use</param> /// <param name="lat">latitude</param> /// <param name="lon">longitude</param> public static void setGuide(this TrackerAsset t, string[] indications) { if (TR == null) { TR = new ExtensionTransformations(); } t.setVar(Extension.Guide.ToString().ToLower(), "[" + indications.Select(i => "\"" + i + "\"").Aggregate((i1, i2) => i1 + ", " + i2) + "]"); }
/// <summary> /// This method allows to set a orientation extension to the current trace /// </summary> /// <param name="t">tracker to use</param> /// <param name="yaw">Yaw in radians (vertical torsion)</param> /// <param name="pitch">Pitch in radians (horizontal torsion)</param> /// <param name="roll">Roll in radians (straight torsion)</param> public static void setOrientation(this TrackerAsset t, double yaw, double pitch, double roll) { if (TR == null) { TR = new ExtensionTransformations(); } t.setVar(Extension.Orientation.ToString().ToLower(), "{\"yaw\":" + yaw + ", \"pitch\": " + pitch + ", \"roll\": " + roll + "}"); }