/// <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.");
            }
        }
Пример #2
0
        /**********************
         * 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);
        }
Пример #3
0
        /**********************
         * 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);
        }
Пример #4
0
        /// <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) + "]");
        }
Пример #5
0
        /// <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 + "}");
        }
Пример #6
0
 public void setTracker(TrackerAsset tracker)
 {
     this.tracker = tracker;
 }
Пример #7
0
 public TrackerAssetUtils(TrackerAsset tracker)
 {
     this.Tracker = tracker;
 }
Пример #8
0
 public TrackerAssetUtils(TrackerAsset tracker)
 {
     Tracker = tracker;
 }