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(); } }
public static void SendCustomEvent(string category, Vector3 position) { TransactionBuilder.Append("{"); JsonUtil.SetString("name", category, TransactionBuilder); TransactionBuilder.Append(","); JsonUtil.SetObject("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, 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 SendGazeData() { if (string.IsNullOrEmpty(Core.TrackingSceneId)) { Util.logDebug("Cognitive GazeCore.SendData could not find scene settings for scene! do not upload gaze to sceneexplorer"); return; } gazebuilder.Append("],"); gazeCount = 0; //header JsonUtil.SetString("userid", Core.UniqueID, gazebuilder); gazebuilder.Append(","); if (!string.IsNullOrEmpty(CognitiveVR_Preferences.LobbyId)) { JsonUtil.SetString("lobbyId", CognitiveVR_Preferences.LobbyId, gazebuilder); gazebuilder.Append(","); } JsonUtil.SetDouble("timestamp", (int)Core.SessionTimeStamp, gazebuilder); gazebuilder.Append(","); JsonUtil.SetString("sessionid", Core.SessionID, gazebuilder); gazebuilder.Append(","); JsonUtil.SetInt("part", jsonPart, gazebuilder); jsonPart++; gazebuilder.Append(","); JsonUtil.SetString("hmdtype", HMDName, gazebuilder); gazebuilder.Append(","); JsonUtil.SetFloat("interval", CognitiveVR.CognitiveVR_Preferences.Instance.SnapshotInterval, gazebuilder); gazebuilder.Append(","); JsonUtil.SetString("formatversion", "1.0", gazebuilder); if (Core.GetNewSessionProperties(false).Count > 0) { gazebuilder.Append(","); gazebuilder.Append("\"properties\":{"); foreach (var kvp in Core.GetNewSessionProperties(true)) { if (kvp.Value.GetType() == typeof(string)) { JsonUtil.SetString(kvp.Key, (string)kvp.Value, gazebuilder); } else { JsonUtil.SetObject(kvp.Key, kvp.Value, gazebuilder); } gazebuilder.Append(","); } gazebuilder.Remove(gazebuilder.Length - 1, 1); //remove comma gazebuilder.Append("}"); } gazebuilder.Append("}"); var sceneSettings = Core.TrackingScene; string url = Constants.POSTGAZEDATA(sceneSettings.SceneId, sceneSettings.VersionNumber); CognitiveVR.NetworkManager.Post(url, gazebuilder.ToString()); //gazebuilder = new StringBuilder(70 * CognitiveVR_Preferences.Instance.GazeSnapshotCount + 200); gazebuilder.Length = 9; //gazebuilder.Append("{\"data\":["); }
static void SendTransactions() { cachedEvents = 0; //bundle up header stuff and transaction data //clear the transaction builder builder.Length = 0; //CognitiveVR.Util.logDebug("package transaction event data " + partCount); //when thresholds are reached, etc builder.Append("{"); //header JsonUtil.SetString("userid", Core.UniqueID, builder); builder.Append(","); if (!string.IsNullOrEmpty(CognitiveVR_Preferences.LobbyId)) { JsonUtil.SetString("lobbyId", CognitiveVR_Preferences.LobbyId, builder); builder.Append(","); } JsonUtil.SetObject("timestamp", Core.SessionTimeStamp, builder); builder.Append(","); JsonUtil.SetString("sessionid", Core.SessionID, builder); builder.Append(","); JsonUtil.SetObject("part", partCount, builder); partCount++; builder.Append(","); JsonUtil.SetString("formatversion", "1.0", builder); builder.Append(","); //events builder.Append("\"data\":["); builder.Append(TransactionBuilder.ToString()); if (TransactionBuilder.Length > 0) { builder.Remove(builder.Length - 1, 1); //remove the last comma } builder.Append("]"); builder.Append("}"); TransactionBuilder.Length = 0; //send transaction contents to scene explorer string packagedEvents = builder.ToString(); if (string.IsNullOrEmpty(Core.TrackingSceneId)) { Util.logDebug("Instrumentation.SendTransactions could not find CurrentSceneId! has scene been uploaded and CognitiveVR_Manager.Initialize been called?"); return; } //sends all packaged transaction events from instrumentaiton subsystem to events endpoint on scene explorer string url = Constants.POSTEVENTDATA(Core.TrackingSceneId, Core.TrackingSceneVersionNumber); //byte[] outBytes = System.Text.UTF8Encoding.UTF8.GetBytes(); //var headers = new Dictionary<string, string>(); //headers.Add("Content-Type", "application/json"); //headers.Add("X-HTTP-Method-Override", "POST"); NetworkManager.Post(url, packagedEvents); }
private static void SendGazeData() { if (gazeCount == 0) { return; } if (!Core.IsInitialized) { return; } if (string.IsNullOrEmpty(Core.TrackingSceneId)) { Util.logDebug("Cognitive GazeCore.SendData could not find scene settings for scene! do not upload gaze to sceneexplorer"); //dump gaze data gazebuilder.Length = 9; gazeCount = 0; return; } if (gazebuilder[gazebuilder.Length - 1] == ',') { gazebuilder = gazebuilder.Remove(gazebuilder.Length - 1, 1); } gazebuilder.Append("],"); gazeCount = 0; //header JsonUtil.SetString("userid", Core.DeviceId, gazebuilder); gazebuilder.Append(","); if (!string.IsNullOrEmpty(Core.LobbyId)) { JsonUtil.SetString("lobbyId", Core.LobbyId, gazebuilder); gazebuilder.Append(","); } JsonUtil.SetDouble("timestamp", (int)Core.SessionTimeStamp, gazebuilder); gazebuilder.Append(","); JsonUtil.SetString("sessionid", Core.SessionID, gazebuilder); gazebuilder.Append(","); JsonUtil.SetInt("part", jsonPart, gazebuilder); jsonPart++; gazebuilder.Append(","); JsonUtil.SetString("hmdtype", HMDName, gazebuilder); gazebuilder.Append(","); JsonUtil.SetFloat("interval", CognitiveVR.CognitiveVR_Preferences.Instance.SnapshotInterval, gazebuilder); gazebuilder.Append(","); JsonUtil.SetString("formatversion", "1.0", gazebuilder); if (Core.ForceWriteSessionMetadata) //if scene changed and haven't sent metadata recently { Core.ForceWriteSessionMetadata = false; gazebuilder.Append(","); gazebuilder.Append("\"properties\":{"); foreach (var kvp in Core.GetAllSessionProperties(true)) { if (kvp.Value.GetType() == typeof(string)) { JsonUtil.SetString(kvp.Key, (string)kvp.Value, gazebuilder); } else { JsonUtil.SetObject(kvp.Key, kvp.Value, gazebuilder); } gazebuilder.Append(","); } gazebuilder.Remove(gazebuilder.Length - 1, 1); //remove comma gazebuilder.Append("}"); } else if (Core.GetNewSessionProperties(false).Count > 0) //if a session property has changed { gazebuilder.Append(","); gazebuilder.Append("\"properties\":{"); foreach (var kvp in Core.GetNewSessionProperties(true)) { if (kvp.Value.GetType() == typeof(string)) { JsonUtil.SetString(kvp.Key, (string)kvp.Value, gazebuilder); } else { JsonUtil.SetObject(kvp.Key, kvp.Value, gazebuilder); } gazebuilder.Append(","); } gazebuilder.Remove(gazebuilder.Length - 1, 1); //remove comma gazebuilder.Append("}"); } gazebuilder.Append("}"); var sceneSettings = Core.TrackingScene; string url = CognitiveStatics.POSTGAZEDATA(sceneSettings.SceneId, sceneSettings.VersionNumber); CognitiveVR.NetworkManager.Post(url, gazebuilder.ToString()); if (OnGazeSend != null) { OnGazeSend.Invoke(); } //gazebuilder = new StringBuilder(70 * CognitiveVR_Preferences.Instance.GazeSnapshotCount + 200); gazebuilder.Length = 9; //gazebuilder.Append("{\"data\":["); }