Пример #1
0
        private void Init(bool showLastTest, bool newTestAvailable, string inputData, string eyetrackerDataJson, OutputTestData2 testData)
        {
            labelVersion.Text = "Version: " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            closeApp          = true;

            if (showLastTest)
            {
                inputData = DataBaseWorker.LoadLastPursuitData(out date, out user_id, out eyetrackerDataJson, out testData);
            }

            this.date_loc = testData.date_loc;
            this.user_id  = testData.user_id;
            date          = testData.date;

            buttonNewTest.Enabled = newTestAvailable;

            //Console.WriteLine("selectedPath: " + selectedPath);

            toolStripStatusLabelFileName.Text = string.Format("{0}-us{1}", date_loc, user_id);

            eyetrackerDataL     = ReviewClass.loadEyetrackerDataFromJson(eyetrackerDataJson);
            _testData           = DataConverter.TestData2ToTestData1(testData);
            stimuloPersuitSetup = ReviewClass.loadPersuitDataFromJson(inputData);

            everythingOk = ReviewClass.eyetrackerDataFound(eyetrackerDataL) & ReviewClass.testDataFound(_testData) & ReviewClass.persuitDataFound(stimuloPersuitSetup);

            if (everythingOk)
            {
                plotGazeData2Control();
            }
        }
Пример #2
0
 public static bool eyetrackerDataFound(eyetrackerDataEyeX eyetrackerDataL)
 {
     if (eyetrackerDataL.targetTraceL == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
Пример #3
0
        void string2Json()
        {
            try
            {
                eyetrackerDatajson = JsonConvert.DeserializeObject <eyetrackerDataEyeX>(eyetrackerData);
            }
            catch (Exception ex)
            {
                Console.WriteLine("FixDetector. Problemas con JsonDeserialize: " + ex.ToString());
                ErrorLog.ErrorLog.toErrorFile(ex.GetBaseException().ToString());
                return;
            }

            Console.WriteLine("FixDetector. String 2 json: done");
        }
Пример #4
0
        public static List <Point> getGazeData2List(eyetrackerDataEyeX eyetrackerDataL, TestData1 testData, Eye fromEye)
        {
            List <Point> gazeDataDoubleList = new List <Point>();

            if (fromEye == Eye.left)
            {
                for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++)
                {
                    int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X * (double)testData.screen_Width);
                    int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height);

                    if (
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X) &&
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y)
                        )
                    {
                        gazeDataDoubleList.Add(new Point(gazeX, gazeY));
                    }
                }
            }

            if (fromEye == Eye.right)
            {
                for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++)
                {
                    int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X * (double)testData.screen_Width);
                    int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height);

                    if (
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X) &&
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y)
                        )
                    {
                        gazeDataDoubleList.Add(new Point(gazeX, gazeY)); //plotGaze(gazeX, gazeY, Color.Blue);
                    }
                }
            }



            return(gazeDataDoubleList);
        }
        public SampleTextFullScreen(TestData1 testData, Size stimulusSize, Point stimulusLocation, fixationData fixData, eyetrackerDataEyeX eyetrackerDataL, CheckBox checkBoxGaze, CheckBox checkBoxFixations, CheckBox checkBoxL, CheckBox checkBoxR)
        {
            InitializeComponent();

            this.testData         = testData;
            this.fixData          = fixData;
            this.stimulusSize     = stimulusSize;
            this.stimulusLocation = stimulusLocation;
            this.eyetrackerDataL  = eyetrackerDataL;
            class4Graphic.loadImage2Control(true, testData, pictureBoxStimulus);


            pictureBoxStimulus.Size     = stimulusSize;
            pictureBoxStimulus.Location = stimulusLocation;

            this.checkBoxGaze      = checkBoxGaze;
            this.checkBoxFixations = checkBoxFixations;
            this.checkBoxL         = checkBoxL;
            this.checkBoxR         = checkBoxR;
        }
Пример #6
0
        public Resumen(bool showLastTest, bool newTestAvailable, string fixDataJson, string eyetrackerDataJson, OutputTestData2 testData)
        {
            InitializeComponent();
            labelVersion.Text = "Version: " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

            closeApp = true;

            if (showLastTest)
            {
                fixDataJson = DataBaseWorker.LoadLastReadingData(out date, out user_id, out eyetrackerDataJson, out testData);
            }

            this.dateloc = testData.date_loc;
            this.user_id = testData.user_id;
            date         = testData.date;

            buttonNewTest.Enabled = newTestAvailable;

            //Console.WriteLine("selectedPath: " + selectedPath);

            _testData = DataConverter.TestData2ToTestData1(testData);

            if (string.IsNullOrWhiteSpace(fixDataJson))
            {
                fixDataJson = processFixData(eyetrackerDataJson, _testData, testData.date, user_id);//procesa los datos de los ojos y genera un archivo fixData.json
            }
            toolStripStatusLabelFileName.Text = string.Format("{0}-us{1}", dateloc, user_id);
            fixDataFound    = loadFixationDataFromJson(fixDataJson); //carga el archivo fixData.json
            eyetrackerDataL = ReviewClass.loadEyetrackerDataFromJson(eyetrackerDataJson);
            getStimulusFeactures(ReviewClass.eyetrackerDataFound(eyetrackerDataL));
            imageFound = class4Graphic.loadImage2Control(ReviewClass.testDataFound(_testData), _testData, pictureBoxStimulus);

            everythingOk = fixDataFound & ReviewClass.eyetrackerDataFound(eyetrackerDataL) & ReviewClass.testDataFound(_testData) & imageFound;

            if (everythingOk)
            {
                processMetrics();
            }
        }
Пример #7
0
        public static List <GazePositionAndTimeClass> getGazePositionAndTimeList(eyetrackerDataEyeX eyetrackerDataL, TestData1 testData, Eye fromEye)
        {
            List <GazePositionAndTimeClass> gazePositionAndTime = new List <GazePositionAndTimeClass>();
            double timeSegundosInicial = 0;
            double timeSegundos        = 0;

            if (fromEye == Eye.left)
            {
                for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++)
                {
                    int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X * (double)testData.screen_Width);
                    int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height);

                    if (indiceSample == 0)
                    {
                        timeSegundos        = 0;
                        timeSegundosInicial = (double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0;
                    }
                    else
                    {
                        timeSegundos = ((double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0) - timeSegundosInicial;
                    }

                    if (
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.X) &&
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Left.GazePointOnDisplayNormalized.Y)
                        )
                    {
                        gazePositionAndTime.Add(new GazePositionAndTimeClass(new Point(gazeX, gazeY), timeSegundos));
                    }
                }
            }

            if (fromEye == Eye.right)
            {
                for (var indiceSample = 0; indiceSample < eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL.Count; indiceSample++)
                {
                    int gazeX = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X * (double)testData.screen_Width);
                    int gazeY = (int)(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y * (double)testData.screen_Height);

                    if (indiceSample == 0)
                    {
                        timeSegundos        = 0;
                        timeSegundosInicial = (double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0;
                    }
                    else
                    {
                        timeSegundos = ((double)eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Timestamp / (double)1000000.0) - timeSegundosInicial;
                    }

                    if (
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.X) &&
                        !double.IsNaN(eyetrackerDataL.targetTraceL[settings.indiceTrial].gazeDataItemL[indiceSample].Right.GazePointOnDisplayNormalized.Y)
                        )
                    {
                        gazePositionAndTime.Add(new GazePositionAndTimeClass(new Point(gazeX, gazeY), timeSegundos));
                    }
                }
            }

            return(gazePositionAndTime);
        }