示例#1
0
        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));
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
 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);
        }
示例#11
0
        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.");
        }
示例#12
0
        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));;
        }