public void HasilCekTombol(ArgumenKendaliTombol args) { if (sesi < 10) { if (args.status && !hasilTekan[sesi]) //ngecek setiap tombol untuk dilakukan testing { hasilTekan[sesi] = true; hasilDurasiRespon[sesi] = args.waktuRespon; } } }
public void CekTombol() { SimpanPosisiTombol(); for (int i = 0; i < DaftarTombol.Count; i++) { //mulai proses similarity measurement ED double jarak = JarakEuclidean ( DaftarPosisiTombol[i][0][0], DaftarPosisiTombol[i][1][0], PosisiMata[0][0], PosisiMata[1][0] ); //mulai proses similarity measurement PPMC double korelasix = KorelasiPearson(DaftarPosisiTombol[i][0], PosisiMata[0]); double korelasiy = KorelasiPearson(DaftarPosisiTombol[i][1], PosisiMata[1]); //Proses ketika hasil PPMC dan ED sampai durasi terpenuhi daftarJarak[i][daftarHasilJarak[i]] = jarak; daftarKorelasiX[i][daftarHasilKorelasiX[i]] = korelasix; daftarKorelasiY[i][daftarHasilKorelasiY[i]] = korelasiy; if (jarak < ThresholdJarak) { daftarHasilJarak[i] += 1; } else { daftarHasilJarak[i] = 0; if (mode.Equals(MetodeDeteksi.ED)) { daftarTimerTombol[i].Restart(); } } if (korelasix > ThresholdKorelasi) { daftarHasilKorelasiX[i] += 1; } else { daftarHasilKorelasiX[i] = 0; if (mode.Equals(MetodeDeteksi.PPMCX)) { daftarTimerTombol[i].Restart(); } } if (korelasiy > ThresholdKorelasi) { daftarHasilKorelasiY[i] += 1; } else { daftarHasilKorelasiY[i] = 0; if (mode.Equals(MetodeDeteksi.PPMCY)) { daftarTimerTombol[i].Restart(); } } if (korelasix >= ThresholdKorelasi || korelasiy >= ThresholdKorelasi) { daftarHasilKorelasiXY[i] += 1; } else { daftarHasilKorelasiXY[i] = 0; if (mode.Equals(MetodeDeteksi.PPMCXY)) { daftarTimerTombol[i].Restart(); } } bool statusjarak = daftarHasilJarak[i] >= DurasiJarakEuclidean; bool statusKorelasiX = daftarHasilKorelasiX[i] >= DurasiKorelasiPearson; bool statusKorelasiY = daftarHasilKorelasiY[i] >= DurasiKorelasiPearson; bool statusKorelasiXY = daftarHasilKorelasiXY[i] >= DurasiKorelasiPearson; //Proses jika button mulai terdeteksi jaraknya sama dengan gaze if (statusjarak) { daftarHasilJarak[i] = DurasiJarakEuclidean; } //proses jika button mulai terdeteksi korelasinya sama dengan gaze if (statusKorelasiX) { daftarHasilKorelasiX[i] = DurasiKorelasiPearson; } if (statusKorelasiY) { daftarHasilKorelasiY[i] = DurasiKorelasiPearson; } if (statusKorelasiXY) { daftarHasilKorelasiXY[i] = DurasiKorelasiPearson; } bool status = false; switch (mode) { case MetodeDeteksi.ED: status = statusjarak; break; case MetodeDeteksi.PPMCX: status = statusKorelasiX; break; case MetodeDeteksi.PPMCY: status = statusKorelasiY; break; case MetodeDeteksi.PPMCXY: status = statusKorelasiXY; break; } if (status) { daftarTimerTombol[i].Stop(); } double[] data = { daftarTimerTombol[i].ElapsedMilliseconds, jarak, korelasix, korelasiy }; ArgumenKendaliTombol hasilCekTombol = new ArgumenKendaliTombol(status, data); DaftarFungsi[i](hasilCekTombol); //Debug.WriteLine(korelasix); } }