///sky position public static void RecordGazePoint(double timestamp, Vector3 hmdpoint, Quaternion hmdrotation, Vector3 gpsloc, float compass, Vector3 floorPos) //looking at the camera far plane { gazebuilder.Append("{"); JsonUtil.SetDouble("time", timestamp, gazebuilder); gazebuilder.Append(","); JsonUtil.SetVector("p", hmdpoint, gazebuilder); gazebuilder.Append(","); JsonUtil.SetQuat("r", hmdrotation, gazebuilder); if (CognitiveVR_Preferences.Instance.TrackGPSLocation) { gazebuilder.Append(","); JsonUtil.SetVector("gpsloc", gpsloc, gazebuilder); gazebuilder.Append(","); JsonUtil.SetFloat("compass", compass, gazebuilder); } if (CognitiveVR_Preferences.Instance.RecordFloorPosition) { gazebuilder.Append(","); JsonUtil.SetVector("f", floorPos, gazebuilder); } gazebuilder.Append("}"); gazeCount++; if (gazeCount >= CognitiveVR_Preferences.Instance.GazeSnapshotCount) { SendGazeData(); } else { gazebuilder.Append(","); } }
public static void SendCustomEvent(string category, List <KeyValuePair <string, object> > properties, float[] position, string dynamicObjectId = "") { if (Core.IsInitialized == false) { CognitiveVR.Util.logWarning("Custom Events cannot be sent before Session Begin!"); return; } eventBuilder.Append("{"); JsonUtil.SetString("name", category, eventBuilder); eventBuilder.Append(","); JsonUtil.SetDouble("time", Util.Timestamp(Time.frameCount), eventBuilder); if (!string.IsNullOrEmpty(dynamicObjectId)) { eventBuilder.Append(','); JsonUtil.SetString("dynamicId", dynamicObjectId, eventBuilder); } eventBuilder.Append(","); JsonUtil.SetVector("point", position, eventBuilder); if (properties != null && properties.Count > 0) { eventBuilder.Append(","); eventBuilder.Append("\"properties\":{"); for (int i = 0; i < properties.Count; i++) { if (i != 0) { eventBuilder.Append(","); } if (properties[i].Value.GetType() == typeof(string)) { JsonUtil.SetString(properties[i].Key, (string)properties[i].Value, eventBuilder); } else { JsonUtil.SetObject(properties[i].Key, properties[i].Value, eventBuilder); } } eventBuilder.Append("}"); //close properties object } eventBuilder.Append("}"); //close transaction object eventBuilder.Append(","); CustomEventRecordedEvent(category, new Vector3(position[0], position[1], position[2]), properties, dynamicObjectId, Util.Timestamp(Time.frameCount)); cachedEvents++; if (cachedEvents >= CognitiveVR_Preferences.Instance.TransactionSnapshotCount) { TrySendTransactions(); } }
//looking at a media dynamic object //mediatime is milliseconds since the start of the video public static void RecordGazePoint(double timestamp, string objectid, Vector3 localgazepoint, Vector3 hmdpoint, Quaternion hmdrotation, Vector3 gpsloc, float compass, string mediasource, int mediatimeMs, Vector2 uvs, Vector3 floorPos) { gazebuilder.Append("{"); JsonUtil.SetDouble("time", timestamp, gazebuilder); gazebuilder.Append(","); JsonUtil.SetString("o", objectid, gazebuilder); gazebuilder.Append(","); JsonUtil.SetVector("p", hmdpoint, gazebuilder); gazebuilder.Append(","); JsonUtil.SetQuat("r", hmdrotation, gazebuilder); gazebuilder.Append(","); JsonUtil.SetVector("g", localgazepoint, gazebuilder); gazebuilder.Append(","); JsonUtil.SetString("mediaId", mediasource, gazebuilder); gazebuilder.Append(","); JsonUtil.SetInt("mediatime", mediatimeMs, gazebuilder); gazebuilder.Append(","); JsonUtil.SetVector2("uvs", uvs, gazebuilder); if (CognitiveVR_Preferences.Instance.TrackGPSLocation) { gazebuilder.Append(","); JsonUtil.SetVector("gpsloc", gpsloc, gazebuilder); gazebuilder.Append(","); JsonUtil.SetFloat("compass", compass, gazebuilder); } if (CognitiveVR_Preferences.Instance.RecordFloorPosition) { gazebuilder.Append(","); JsonUtil.SetVector("f", floorPos, gazebuilder); } gazebuilder.Append("}"); gazeCount++; if (gazeCount >= CognitiveVR_Preferences.Instance.GazeSnapshotCount) { SendGazeData(); } else { gazebuilder.Append(","); } DynamicGazeRecordEvent(timestamp, objectid, localgazepoint, hmdpoint, hmdrotation); }
public static void SendCustomEvent(string category, Vector3 position) { TransactionBuilder.Append("{"); JsonUtil.SetString("name", category, TransactionBuilder); TransactionBuilder.Append(","); JsonUtil.SetDouble("time", Util.Timestamp(), TransactionBuilder); TransactionBuilder.Append(","); JsonUtil.SetVector("point", position, TransactionBuilder); TransactionBuilder.Append("}"); //close transaction object TransactionBuilder.Append(","); cachedEvents++; if (cachedEvents >= maxCachedEvents) { SendTransactions(); } }
public static void SendCustomEvent(string category, float[] position, string dynamicObjectId = "") { eventBuilder.Append("{"); JsonUtil.SetString("name", category, eventBuilder); eventBuilder.Append(","); JsonUtil.SetDouble("time", Util.Timestamp(Time.frameCount), eventBuilder); if (!string.IsNullOrEmpty(dynamicObjectId)) { eventBuilder.Append(','); JsonUtil.SetString("dynamicId", dynamicObjectId, eventBuilder); } eventBuilder.Append(","); JsonUtil.SetVector("point", position, eventBuilder); eventBuilder.Append("}"); //close transaction object eventBuilder.Append(","); cachedEvents++; if (cachedEvents >= CognitiveVR_Preferences.Instance.TransactionSnapshotCount) { TrySendTransactions(); } }
public static void SendCustomEvent(string category, Dictionary <string, object> properties, float[] position) { TransactionBuilder.Append("{"); JsonUtil.SetString("name", category, TransactionBuilder); TransactionBuilder.Append(","); JsonUtil.SetDouble("time", Util.Timestamp(), TransactionBuilder); TransactionBuilder.Append(","); JsonUtil.SetVector("point", position, TransactionBuilder); if (properties != null && properties.Keys.Count > 0) { TransactionBuilder.Append(","); TransactionBuilder.Append("\"properties\":{"); foreach (var v in properties) { if (v.Value.GetType() == typeof(string)) { JsonUtil.SetString(v.Key, (string)v.Value, TransactionBuilder); } else { JsonUtil.SetObject(v.Key, v.Value, TransactionBuilder); } TransactionBuilder.Append(","); } TransactionBuilder.Remove(TransactionBuilder.Length - 1, 1); //remove last comma TransactionBuilder.Append("}"); //close properties object } TransactionBuilder.Append("}"); //close transaction object TransactionBuilder.Append(","); cachedEvents++; if (cachedEvents >= maxCachedEvents) { SendTransactions(); } }
private static void Core_OnSendData() { if (Fixations.Count <= 0) { CognitiveVR.Util.logDebug("Fixations.SendData found no data"); return; } //TODO should hold until extreme batch size reached if (string.IsNullOrEmpty(Core.TrackingSceneId)) { CognitiveVR.Util.logDebug("Fixations.SendData could not find scene settings for scene! do not upload fixations to sceneexplorer"); Fixations.Clear(); return; } nextSendTime = Time.realtimeSinceStartup + CognitiveVR_Preferences.Instance.FixationSnapshotMaxTimer; lastSendTime = Time.realtimeSinceStartup; StringBuilder sb = new StringBuilder(1024); sb.Append("{"); JsonUtil.SetString("userid", Core.UniqueID, sb); sb.Append(","); JsonUtil.SetString("sessionid", Core.SessionID, sb); sb.Append(","); JsonUtil.SetInt("timestamp", (int)Core.SessionTimeStamp, sb); sb.Append(","); JsonUtil.SetInt("part", jsonPart, sb); sb.Append(","); jsonPart++; sb.Append("\"data\":["); for (int i = 0; i < Fixations.Count; i++) { sb.Append("{"); JsonUtil.SetDouble("time", System.Convert.ToDouble((double)Fixations[i].StartMs / 1000.0), sb); sb.Append(","); JsonUtil.SetLong("duration", Fixations[i].DurationMs, sb); sb.Append(","); JsonUtil.SetFloat("maxradius", Fixations[i].MaxRadius, sb); sb.Append(","); if (Fixations[i].IsLocal) { JsonUtil.SetString("objectid", Fixations[i].DynamicObjectId, sb); sb.Append(","); JsonUtil.SetVector("p", Fixations[i].LocalPosition, sb); } else { JsonUtil.SetVector("p", Fixations[i].WorldPosition, sb); } sb.Append("},"); } if (Fixations.Count > 0) { sb.Remove(sb.Length - 1, 1); //remove last comma from fixation object } sb.Append("]}"); Fixations.Clear(); string url = CognitiveStatics.POSTFIXATIONDATA(Core.TrackingSceneId, Core.TrackingSceneVersionNumber); NetworkManager.Post(url, sb.ToString()); }