// Testing purposes  only
        public static void run()
        {
            if (File.Exists("C:\\EVS\\experiments\\Exp1\\Sess1\\Tr1\\displayParser.log"))
            {
                File.Delete("C:\\EVS\\experiments\\Exp1\\Sess1\\Tr1\\displayParser.log");
            }
            TextWriter log = null;

            try
            {
                log = new StreamWriter("C:\\EVS\\experiments\\Exp1\\Sess1\\Tr1\\displayParser.log");


                DisplayFileParser parser = new DisplayFileParser("C:\\EVS\\experiments\\Exp1\\Sess1\\Tr1\\Exp1_Sess1_Tr5_disp.xml");

                Console.WriteLine(" validating file");
                if (parser.validate())
                {
                    Hashtable data = parser.retrieveGlobalDisplayData();
                    if (data == null)
                    {
                        log.WriteLine(" display data null");
                        return;
                    }
                    System.Collections.IDictionaryEnumerator itr = data.GetEnumerator();
                    while (itr.MoveNext())
                    {
                        Object value = itr.Value;
                        if (value is List <ObjectData> )
                        {
                            List <ObjectData> list = (List <ObjectData>)value;
                            foreach (ObjectData thisData in list)
                            {
                                log.WriteLine(thisData.objName + " : " + thisData.objFilePath + " : " + thisData.isTargetObject);
                            }
                        }
                        else
                        {
                            log.WriteLine(itr.Key.ToString() + " : " + itr.Value.ToString());
                        }
                    }
                }
                else
                {
                    log.WriteLine("not valid!!");
                }
            }
            finally
            {
                log.Flush();
                log.Close();
            }
        }
예제 #2
0
        //test  routine
        private static void testXmlParser(string displayFileName)
        {
            DisplayFileParser parser = new DisplayFileParser(displayFileName);

            if (parser.validate())
            {
                Console.WriteLine("Success");
                Hashtable data = parser.getDisplayData();
                if (data == null)
                {
                    Console.WriteLine(" No Data found ");
                    return;
                }

                System.Collections.IDictionaryEnumerator itr = data.GetEnumerator();
                while (itr.MoveNext())
                {
                    Console.WriteLine(itr.Entry.Key + "  : " + itr.Entry.Value);
                }
            }
        }
예제 #3
0
        /**
         * Entry routine to display graphics and replay the trial
         *
         */
        public static void display(String speedFactor)
        {
            if (!File.Exists(displayFileName))
            {
                log.WriteLine("display file : " + displayFileName + " does not exist : Aborting Replay");
                log.Flush();
                throw new ATLogicException("display file : " + displayFileName + " does not exist : Aborting Replay");
            }

            SPEED_FACTOR = speedFactor;

            try
            {
                try
                {
                    if (log != null)
                    {
                        log.Close();
                    }
                }
                catch (Exception ignore) { }

                String logFileName = "C:\\replay.log";


                if (File.Exists(logFileName))
                {
                    File.Delete(logFileName);
                }
                log = new StreamWriter(logFileName);


                // display file exists and Log file has been created

                //Now read the Display File and Display the Trial
                populateDisplayFormData();

                // if Validation Throws an Exception, then Replay is Aborted.
                try
                {
                    validateObjectFilePaths();
                }
                catch (ATLogicException logic)
                {
                    throw; // Fatal Erroe. Cannot replay trial
                }


                if (timeStampDataQueue.Count == 0)
                {
                    throw new ATLogicException("No time Stamp data Obtained  for Display File: " + displayFileName + "  : Aborting Replay");
                }

                int totalTimeStamps = timeStampDataQueue.Count;

                setupGraphicsWindow();
                // timeStampDataQueue.Clear();
                //   finally{
                if (parser != null)
                {
                    parser = null;
                }
                log.WriteLine(" End of Replay Trial : " + DisplayFileName);
                log.Flush();
                log.Close();
                log = null;
                //  }
            }
            catch (Exception e)
            {
                throw;
            }

            /*
             * finally
             * {
             * // timeStampDataQueue.Clear();
             * parser.close();
             * parser = null;
             * log.WriteLine(" End of Replay Trial : " + DisplayFileName);
             * log.Flush();
             * log.Close();
             *
             * }
             * */
        }
예제 #4
0
        private static void populateDisplayFormData()
        {
            try
            {
                parser = new DisplayFileParser(displayFileName);

                if (parser.validate())
                {
                    Hashtable displayData = parser.retrieveGlobalDisplayData();
                    if (displayData == null)
                    {
                        log.WriteLine(" display data null");
                        return;
                    }
                    if (displayData.ContainsKey("GridDisplay"))
                    {
                        formSetting.GridDisplay = Convert.ToInt32(displayData["GridDisplay"]);
                    }
                    if (displayData.ContainsKey("X"))
                    {
                        formSetting.DisplayX = Convert.ToInt32(displayData["X"]);
                    }

                    if (displayData.ContainsKey("Y"))
                    {
                        formSetting.DisplayY = Convert.ToInt32(displayData["Y"]);
                    }
                    if (displayData.ContainsKey("BGA"))
                    {
                        formSetting.BGA = Convert.ToInt32(displayData["BGA"]);
                    }
                    if (displayData.ContainsKey("BGR"))
                    {
                        formSetting.BGR = Convert.ToInt32(displayData["BGR"]);
                    }
                    if (displayData.ContainsKey("BGG"))
                    {
                        formSetting.BGG = Convert.ToInt32(displayData["BGG"]);
                    }
                    if (displayData.ContainsKey("BGB"))
                    {
                        formSetting.BGB = Convert.ToInt32(displayData["BGB"]);
                    }
                    if (displayData.ContainsKey("FGA"))
                    {
                        formSetting.FGA = Convert.ToInt32(displayData["FGA"]);
                    }
                    if (displayData.ContainsKey("FGR"))
                    {
                        formSetting.FGR = Convert.ToInt32(displayData["FGR"]);
                    }
                    if (displayData.ContainsKey("FGG"))
                    {
                        formSetting.FGG = Convert.ToInt32(displayData["FGG"]);
                    }
                    if (displayData.ContainsKey("FGB"))
                    {
                        formSetting.FGB = Convert.ToInt32(displayData["FGB"]);
                    }

                    objects.Add("gaze", "gaze.bmp");

                    System.Collections.IDictionaryEnumerator itr = displayData.GetEnumerator();
                    while (itr.MoveNext())
                    {
                        Object value = itr.Value;
                        if (value is List <ObjectData> )
                        {
                            List <ObjectData> list = (List <ObjectData>)value;
                            foreach (ObjectData thisData in list)
                            {
                                objects.Add(thisData.objName, thisData.objFilePath);
                                if (thisData.isTargetObject == 1)
                                {
                                    formSetting.addTargetObject(thisData.objName);
                                }

                                //     log.WriteLine(thisData.objName + " : " + thisData.objFilePath + " : " + thisData.isTargetObject);
                            }
                        }
                    }
                    enQueueTimeStampData();
                }
            }
            catch (Exception e)
            {
                // do nothing
                throw;
            }
            finally
            {
                parser.close();
            }
        }