public override string HandleBytes(byte[] bytes, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { string ext = Path.GetExtension(dataName); dataName = Path.GetFileNameWithoutExtension(dataName); if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string directory = GetSessionPath(experiment, ppid, sessionNum); if (sortDataIntoFolders && dataType != UXFDataType.TrialResults) { directory = Path.Combine(directory, dataType.ToLower()); } Directory.CreateDirectory(directory); string name = string.IsNullOrEmpty(ext) ? string.Format("{0}.txt", dataName) : string.Format("{0}{1}", dataName, ext); string savePath = Path.Combine(directory, name); if (verboseDebug) { Utilities.UXFDebugLogFormat("Queuing save of file: {0}", savePath); } ManageInWorker(() => { File.WriteAllBytes(savePath, bytes); }); return(GetRelativePath(storagePath, savePath)); }
public override string HandleJSONSerializableObject(Dictionary <string, object> serializableObject, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string text = MiniJSON.Json.Serialize(serializableObject); string directory = GetSessionPath(experiment, ppid, sessionNum); if (sortDataIntoFolders && dataType != UXFDataType.TrialResults) { directory = Path.Combine(directory, dataType.ToLower()); } Directory.CreateDirectory(directory); string savePath = Path.Combine(directory, string.Format("{0}.json", dataName)); if (verboseDebug) { Debug.LogFormat("Queuing save of file: {0}", savePath); } ManageInWorker(() => { File.WriteAllText(savePath, text); }); return(savePath); }
public override string HandleDataTable(UXFDataTable table, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string[] lines = table.GetCSVLines(); string directory = GetSessionPath(experiment, ppid, sessionNum); if (sortDataIntoFolders && dataType != UXFDataType.TrialResults) { directory = Path.Combine(directory, dataType.ToLower()); } Directory.CreateDirectory(directory); string savePath = Path.Combine(directory, string.Format("{0}.csv", dataName)); if (verboseDebug) { Debug.LogFormat("Queuing save of file: {0}", savePath); } ManageInWorker(() => { File.WriteAllLines(savePath, lines); }); return(savePath); }
public override string HandleJSONSerializableObject(List <object> serializableObject, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { // get data as text string text = MiniJSON.Json.Serialize(serializableObject); string ext = Path.GetExtension(dataName); dataName = Path.GetFileNameWithoutExtension(dataName); if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string directory = GetSessionPathRelative(experiment, ppid, sessionNum); if (dataType != UXFDataType.TrialResults) { directory = Path.Combine(directory, dataType.ToLower()); } string name = string.IsNullOrEmpty(ext) ? string.Format("{0}.json", dataName) : string.Format("{0}{1}", dataName, ext); string savePath = Path.Combine(directory, name); savePath = savePath.Replace('\\', '/'); // here we send our data request AuthenticatedRequest(savePath, text); // return a string representing the location of the data. Will be stored in the trial_results output. return(savePath); }
private UXFDataLevel DatabaseDataLevel(UXFDataType dt) { UXFDataLevel dl = dt.GetDataLevel(); // trial results is a special case, session level file, but trial level data if (dt == UXFDataType.TrialResults) { dl = UXFDataLevel.PerTrial; } return(dl); }
public bool CheckDataTypeIsValid(string dataName, UXFDataType dataType) { if (dataType.GetDataLevel() != UXFDataLevel.PerTrial) { Debug.LogErrorFormat( "Error trying to save data '{0}' of type UXFDataType.{1} associated with the Trial. The valid types for this method are {2}. Reverting to type UXFDataType.OtherTrialData.", dataName, dataType, string.Join(", ", UXFDataLevel.PerTrial.GetValidDataTypes()) ); return(false); } else { return(true); } }
public override string HandleText(string text, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { if (dataType != UXFDataType.TrialResults && trialResultsOnly) { return("NA"); } if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string fname = string.Format("{0}.txt", dataName); CreateNewItem(text, fname); return(fname); }
public override string HandleJSONSerializableObject(Dictionary <string, object> serializableObject, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { if (dataType != UXFDataType.TrialResults && trialResultsOnly) { return("NA"); } if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string text = MiniJSON.Json.Serialize(serializableObject); string fname = string.Format("{0}.json", dataName); CreateNewItem(text, fname); return(fname); }
public override string HandleBytes(byte[] bytes, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { if (dataType != UXFDataType.TrialResults && trialResultsOnly) { return("NA"); } if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string fname = string.Format("{0}.txt", dataName); string content = System.Text.Encoding.UTF8.GetString(bytes); CreateNewItem(content, fname); return(fname); }
public override string HandleDataTable(UXFDataTable table, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { if (dataType != UXFDataType.TrialResults && trialResultsOnly) { return("NA"); } if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string[] lines = table.GetCSVLines(); string fname = string.Format("{0}.csv", dataName); string content = string.Join("\n", lines); // if trial results, push to top of list for convenience CreateNewItem(content, fname, pushToTop: dataType == UXFDataType.TrialResults); return(fname); }
public override string HandleText(string text, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { Debug.LogFormat("Handling a JSON Serializale Object for session: {0}, {1}, {2}", experiment, ppid, sessionNum); Debug.LogFormat("The data name is: {0}, and the type is: ", dataName, dataType); if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { Debug.LogFormat("Data is per-trial, trial number is {0}.", optionalTrialNum); } else { Debug.Log("Data is per-session."); } // here we "write" our data, you could upload to database, or do whatever. Debug.Log(text); // return a string representing the location of the data. Will be stored in the trial_results output. return("Data printed to console."); }
public override string HandleText(string text, string experiment, string ppid, int sessionNum, string dataName, UXFDataType dataType, int optionalTrialNum = 0) { if (dataType.GetDataLevel() == UXFDataLevel.PerTrial) { dataName = string.Format("{0}_T{1:000}", dataName, optionalTrialNum); } string directory = GetSessionPath(experiment, ppid, sessionNum); if (sortDataIntoFolders && dataType != UXFDataType.TrialResults) { directory = Path.Combine(directory, dataType.ToLower()); } Directory.CreateDirectory(directory); string savePath = Path.Combine(directory, string.Format("{0}.txt", dataName)); if (verboseDebug) { Utilities.UXFDebugLogFormat("Queuing save of file: {0}", savePath); } ManageInWorker(() => { File.WriteAllText(savePath, text); }); return(GetRelativePath(storagePath, savePath));; }