public override void ProcessClick(System.Drawing.PointF mousePoint, System.Drawing.PointF screenPoint, CMSExtraTrackingInfo extraInfo, System.Drawing.Bitmap[] frames) { try { if (prevMousePoint.IsEmpty) { prevMousePoint = mousePoint; clickingThresholdForm.checkValue(0, false); return; } AHMTrackingState curState = AHMTrackingState.NoFeature; if (extraInfo != null) { curState = ((AHMStateExtraInfo)extraInfo).TrackingState; } if (curState == AHMTrackingState.NoFeature || curState.Equals(AHMTrackingState.Feature)) { clickingThresholdForm.Reset(); prevMousePoint = mousePoint; clickingThresholdForm.checkValue(0, false); return; } double dx = prevMousePoint.X - mousePoint.X; double dy = prevMousePoint.Y - mousePoint.Y; if (dy < 0) { dy = 0; } double dist = dy; bool isTraining = curState.Equals(AHMTrackingState.AHMSetup); movingAverage.AddPoint(dist); clickingThresholdForm.checkValue(movingAverage.EMAverage, isTraining); prevMousePoint = mousePoint; double thresh = ((double)threshold / 100.0) * clickingThresholdForm.MaxValue; if (ExperimentClickFrameSaver.IsExperimentFrameEnabled()) { ExperimentClickFrameSaver.SaveEvent(new ExperimentFrame(dist, movingAverage.EMAverage, thresh, ClickEvent ? 1 : 0)); } } catch { } }
private void SetState(AHMTrackingState newState) { string message = null; lock (mutex) { if (CMSLogger.CanCreateLogEvent(false, false, false, "AHMLogStateEvent")) { AHMLogStateEvent stateEvent = new AHMLogStateEvent(); if (stateEvent != null) { stateEvent.State = newState.ToString(); CMSLogger.SendLogEvent(stateEvent); } } if (newState.Equals(AHMTrackingState.NoFeature)) { eyeLocatorTickCount = Environment.TickCount; lastClickPoint = Point.Empty; imagePoint = PointF.Empty; autoStartEnded = false; if (!autoStartMode.Equals(AutoStartMode.None)) { if (eyeLocator != null) { eyeLocator.Reset(); } } if (state.Equals(AHMTrackingState.AHMSetup)) { ahmSetup.Clean(); } else if (state.Equals(AHMTrackingState.Tracking)) { if (extraDisplay) { trackingSuiteAdapter.SendMessages(null, null); } if (cameraMouseAssist != null) { cameraMouseAssist.Dispose(); cameraMouseAssist = null; } } trackingSuiteAdapter.ToggleSetup(true); state = AHMTrackingState.NoFeature; message = "Select Feature to Start Setup"; } else if (newState.Equals(AHMTrackingState.Feature)) { if (state.Equals(AHMTrackingState.AHMSetup)) { ahmSetup.Clean(); } else if (state.Equals(AHMTrackingState.Tracking)) { if (extraDisplay) { trackingSuiteAdapter.SendMessages(null, null); } if (cameraMouseAssist != null) { cameraMouseAssist.Dispose(); cameraMouseAssist = null; } trackingSuiteAdapter.ToggleSetup(true); } state = AHMTrackingState.Feature; message = "Press Tab to Start Training"; } else if (newState.Equals(AHMTrackingState.AHMSetup)) { StartAHMSetup(); state = AHMTrackingState.AHMSetup; } else if (newState.Equals(AHMTrackingState.Tracking)) { //if (state.Equals(AHMTrackingState.AHMSetup)) //ahmSetup.Clean(); state = AHMTrackingState.Tracking; trackingSuiteAdapter.ToggleSetup(false); message = ", press Tab to reset"; if (!autoStartMode.Equals(AutoStartMode.None)) { //message = ", control will start shortly"; Thread t = new Thread(new ThreadStart(StartControlThread)); t.Start(); } } } if (message != null) { this.trackingSuiteAdapter.SendMessage(message); } }
private void SetState(AHMTrackingState newState) { string message = null; lock (mutex) { if (CMSLogger.CanCreateLogEvent(false, false, false, "AHMLogStateEvent")) { AHMLogStateEvent stateEvent = new AHMLogStateEvent(); if (stateEvent != null) { stateEvent.State = newState.ToString(); CMSLogger.SendLogEvent(stateEvent); } } if (newState.Equals(AHMTrackingState.NoFeature)) { autoStartEnded = false; eyeLocatorTickCount = Environment.TickCount; lastClickPoint = Point.Empty; imagePoint = PointF.Empty; if (eyeLocator != null) { eyeLocator.Reset(); } if (state.Equals(AHMTrackingState.AHMSetup)) { ahmSetup.Clean(); } else if (state.Equals(AHMTrackingState.Tracking)) { for (int i = 0; i < cameraMouseAssists.Length; i++) { if (cameraMouseAssists[i] != null) { cameraMouseAssists[i].Dispose(); cameraMouseAssists[i] = null; } } } trackingSuiteAdapter.ToggleSetup(true); state = AHMTrackingState.NoFeature; message = "Select Feature to Start Setup"; } else if (newState.Equals(AHMTrackingState.AHMSetup)) { StartAHMSetup(); state = AHMTrackingState.AHMSetup; } else if (newState.Equals(AHMTrackingState.Tracking)) { //if (state.Equals(AHMTrackingState.AHMSetup)) //ahmSetup.Clean(); state = AHMTrackingState.Tracking; //trackingSuiteAdapter.ToggleSetup(false); //message = ", Press Tab to reset"; //trackingSuiteAdapter.ToggleControl(true); } } if (message != null) { this.trackingSuiteAdapter.SendMessage(message); } }