Я делаю приложение Form, которое выполняет движения глаз во время выполнения процесса и снова использует данные глаза для передачи следующей формы.Если я выполняю переход с данными движения глаз, «eyeTracker.GazeDataReceived + = EyeTracker_GazeDataReceived» работает только для первой формы.
private void Form7_Load(object sender, EventArgs e)
{
IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
GazeData(eyeTracker);
}
private static void GazeData(IEyeTracker eyeTracker)
{
if (Scores.a1 == 0)
{
// Start listening to gaze data.
eyeTracker.GazeDataReceived += EyeTracker_GazeDataReceived;
}
else
{
eyeTracker.GazeDataReceived -= EyeTracker_GazeDataReceived;
OkudugunuAnlama1 okudugunuAnlama1 = new OkudugunuAnlama1();
okudugunuAnlama1.ShowDialog();
Form7 form7 = new Form7();
form7.Visible = false;
}
}
private static void EyeTracker_GazeDataReceived(object sender, GazeDataEventArgs e)
{
IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
if (Scores.a1 == 0)
{
FileInfo file = new FileInfo(dosya_yolu);
using (ExcelPackage excelPackage = new ExcelPackage(file))
{
...// Some codes write the gaze data to exel
}
Scores.i = Scores.i + 2;
}
else if (Scores.a1 == 1)
{
while (0.8 < e.LeftEye.GazePoint.PositionOnDisplayArea.X & e.LeftEye.GazePoint.PositionOnDisplayArea.X < 0.99) //Kırmızı daireye yeterince baktı mı?
{
System.Threading.Thread.Sleep(3000);
GazeData(eyeTracker);
}
}
}
Этот код выполняется успешно, но после передачи следующей формы, некоторые коды ниже,не сработало событие "eyeTracker.GazeDataReceived + = EyeTracker_GazeDataReceived" метод.
private void Form13_Load(object sender, EventArgs e)
{
IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
GazeData(eyeTracker);
}
private static void GazeData(IEyeTracker eyeTracker)
{
if (Scores.b1 == 0)
{
//HERE not work
eyeTracker.GazeDataReceived += EyeTracker_GazeDataReceived;
}
else
{
eyeTracker.GazeDataReceived -= EyeTracker_GazeDataReceived;
OkudugunuAnlama2cs okudugunuAnlama2 = new OkudugunuAnlama2cs();
okudugunuAnlama2.ShowDialog();
Form13 form13 = new Form13();
form13.Visible = false;
}
}
private static void EyeTracker_GazeDataReceived(object sender, GazeDataEventArgs e)
{
IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
if (Scores.a1 == 0)
{
FileInfo file = new FileInfo(dosya_yolu);
using (ExcelPackage excelPackage = new ExcelPackage(file))
{
...// Some codes write the gaze data to exel
}
Scores.i = Scores.i + 2;
}
else if (Scores.a1 == 1)
{
while (0.8 < e.LeftEye.GazePoint.PositionOnDisplayArea.X & e.LeftEye.GazePoint.PositionOnDisplayArea.X < 0.99) //Kırmızı daireye yeterince baktı mı?
{
System.Threading.Thread.Sleep(3000);
GazeData(eyeTracker);
}
}
}
Если вы делаете переход с помощью кнопок, коды работают.Но я должен сделать с очками взора.Пожалуйста, помогите о втором событии.