Beispiel #1
0
        public static void WriteSnippets()
        {
            // Get directories to read and write from
            String[] dirReadWrite = GetReadWriteDirectories();

            String dataDir  = dirReadWrite[0];
            String writeDir = dirReadWrite[1];

            // Loading CV file
            CVFile cvf = LoadCVFile(dataDir);

            // Getting list of CVs (3 CVs probably)
            List <CVBasedQuestionList> cvList = cvf.CVBasedQuestionList;

            // For each CV
            for (int i = 0; i < cvList.Count; i++)
            {
                List <CVBasedQuestion> snippetList = cvList[i].CVBasedQuestions; // get list of snippets (4)

                // For each snippet in CV
                for (int j = 0; j < snippetList.Count; j++)
                {
                    // start and end times
                    long start = snippetList[j].TimeStamp; long end = snippetList[j].CompletedTimeStamp;

                    EEGDataIO dataIO = new EEGDataIO(dataDir, GetExpStartEnd(dataDir)[0]);

                    dataIO.LoadData(start, end);

                    dataIO.WriteToMat(writeDir + "CV_" + (i + 1) + "_snippet_" + (j + 1) + ".mat");
                }
            }
        }
Beispiel #2
0
        public static void GenerateSnippetEvents(String dataDir, String writeDir)
        {
            // Generates epoch/event times for CV snippets
            // Default length is 1s, overlap 0.5s
            // So e.g. for 2s snippet, there will be 3 epochs

            // Output is tab-separated .txt file (for import to EEGLAB)

            // Loading CV file
            CVFile cvf = LoadCVFile(dataDir);

            // Getting list of CVs (3 CVs probably)
            List <CVBasedQuestionList> cvList = cvf.CVBasedQuestionList;

            // File string
            String eventString = "latency\ttype\tcv\tsection\tenum";

            String[] type = { "start", "during", "during", "during", "during", "during", "during" };

            // For each CV
            for (int i = 0; i < cvList.Count; i++)
            {
                List <CVBasedQuestion> snippetList = cvList[i].CVBasedQuestions; // get list of snippets (4)

                // For each snippet in CV
                for (int j = 0; j < snippetList.Count; j++)
                {
                    // start timestamp, relative to experiment start; in seconds
                    double start = Convert.ToDouble(snippetList[j].TimeStamp) / 1000;

                    if (j == 0 || j == 1)
                    {
                        // 2 seconds; 3 snippets
                        for (int k = 0; k < 3; k++)
                        {
                            eventString += "\r\n" + (start + k * 0.5) + "\t" + type[k] + "\t" + (i + 1) + "\t" + (j + 1) + "\t" + (k + 1);
                        }
                    }
                    else if (j == 2 || j == 3)
                    {
                        // 3 seconds; 5 snippets
                        for (int k = 0; k < 5; k++)
                        {
                            eventString += "\r\n" + (start + k * 0.5) + "\t" + type[k] + "\t" + (i + 1) + "\t" + (j + 1) + "\t" + (k + 1);
                        }
                    }
                }
            }


            // Writing to file
            System.IO.File.WriteAllText(writeDir + @"eventtable.txt", eventString);
        }