public void SetPoint(byte[] p) { State = CalibrateState.RecievingCalibrationPoints; p = MessageUtility.GetOnlyData(p); int index = p[1]; int chanel1 = BitConverter.ToInt32(new byte[] { p[5], p[4], p[3], p[2] }, 0); int chanel2 = BitConverter.ToInt32(new byte[] { p[9], p[8], p[7], p[6] }, 0); int chanel3 = BitConverter.ToInt32(new byte[] { p[13], p[12], p[11], p[10] }, 0); int chanel4 = BitConverter.ToInt32(new byte[] { p[17], p[16], p[15], p[14] }, 0); chanels[0].SetXPoint(index, chanel1); chanels[1].SetXPoint(index, chanel2); chanels[2].SetXPoint(index, chanel3); chanels[3].SetXPoint(index, chanel4); }
internal void SetInductance(byte[] p) { State = CalibrateState.RecievingCalibrationInductance; p = MessageUtility.GetOnlyData(p); int index = p[1]; int chanel1L = BitConverter.ToInt32(new byte[] { p[5], p[4], p[3], p[2] }, 0); int chanel2L = BitConverter.ToInt32(new byte[] { p[9], p[8], p[7], p[6] }, 0); int chanel3L = BitConverter.ToInt32(new byte[] { p[13], p[12], p[11], p[10] }, 0); int chanel4L = BitConverter.ToInt32(new byte[] { p[17], p[16], p[15], p[14] }, 0); int chanel1LTot = 0; int chanel2LTot = 0; int chanel3LTot = 0; int chanel4LTot = 0; if (p.Length > 18) { chanel1LTot = BitConverter.ToInt32(new byte[] { p[25], p[24], p[23], p[22], p[21], p[20], p[19], p[18] }, 0) / 10; chanel2LTot = BitConverter.ToInt32(new byte[] { p[33], p[32], p[31], p[30], p[29], p[28], p[27], p[26] }, 0) / 10; chanel3LTot = BitConverter.ToInt32(new byte[] { p[41], p[40], p[39], p[38], p[37], p[36], p[35], p[34] }, 0) / 10; chanel4LTot = BitConverter.ToInt32(new byte[] { p[49], p[48], p[47], p[46], p[45], p[44], p[43], p[42] }, 0) / 10; } chanels[0].SetDetectorXPoint(index, chanel1L, chanel1LTot); chanels[1].SetDetectorXPoint(index, chanel2L, chanel2LTot); chanels[2].SetDetectorXPoint(index, chanel3L, chanel3LTot); chanels[3].SetDetectorXPoint(index, chanel4L, chanel4LTot); }
private void calibrateModel_StateChanged(CalibrateState state) { switch (state) { case CalibrateState.Start: StatusText.Visibility = Visibility.Visible; StatusText.Text = ""; break; case CalibrateState.RecievingCalibrationInductance: StatusText.Text = "Recieving Calibration Inductance"; break; case CalibrateState.RecievingCalibrationPoints: StatusText.Text = "Recieving Calibration Points"; break; case CalibrateState.DoneCalibrationPoints: StatusText.Text = "Recieved all Calibration Points"; foreach (var chanel in calibrateModel.chanels) { chanel.CalcData(); } SendResults(); break; case CalibrateState.Done: tempbtn.IsEnabled = true; StatusText.Text = "Recieved all Calibration Inductance, All Done"; break; } }
public override void SetData(byte[] data) { if (State == CalibrateState.RecievingCalibrationPoints) { State = CalibrateState.DoneCalibrationPoints; } else if (State == CalibrateState.RecievingCalibrationInductance) { State = CalibrateState.Done; worker.RunWorkerAsync(); } }
public override void InstallBindings() { // StateMachineInstaller Container.BindInterfacesTo <StateManager> ().AsSingle().NonLazy(); // Root StateMachine RootStateMachine root = new RootStateMachine(); Container.Bind <IRootStateMachine> ().To <RootStateMachine> ().FromInstance(root); CalibrateState calibrateState = new CalibrateState(); root.AddState(StateName.CALIBRATE_STATE, calibrateState); Container.Bind <ICalibrateState> ().To <CalibrateState> ().FromInstance(calibrateState); Container.QueueForInject(calibrateState); ARStateMachine aRStateMachine = new ARStateMachine(); root.AddState(StateName.AR_SM, aRStateMachine); Container.Bind <IARStateMachine> ().To <ARStateMachine> ().FromInstance(aRStateMachine); // AR StateMachine BuildStateMachine buildStateMachine = new BuildStateMachine(); aRStateMachine.AddState(StateName.BUILD_SM, buildStateMachine); Container.Bind <IBuildStateMachine> ().To <BuildStateMachine> ().FromInstance(buildStateMachine); Container.QueueForInject(buildStateMachine); RaceStateMachine raceStateMachine = new RaceStateMachine(); aRStateMachine.AddState(StateName.RACE_SM, raceStateMachine); Container.Bind <IRaceStateMachine> ().To <RaceStateMachine> ().FromInstance(raceStateMachine); // Build StateMachine BuildDialogState buildDialogState = new BuildDialogState(); buildStateMachine.AddState(StateName.BUILD_DIALOG_STATE, buildDialogState); Container.Bind <IBuildDialogState> ().To <BuildDialogState> ().FromInstance(buildDialogState); Container.QueueForInject(buildDialogState); BuildPaintState buildPaintState = new BuildPaintState(); buildStateMachine.AddState(StateName.BUILD_PAINT_STATE, buildPaintState); Container.Bind <IBuildPaintState> ().To <BuildPaintState> ().FromInstance(buildPaintState); Container.QueueForInject(buildPaintState); BuildEditorState buildEditorState = new BuildEditorState(); buildStateMachine.AddState(StateName.BUILD_EDITOR_STATE, buildEditorState); Container.Bind <IBuildEditorState> ().To <BuildEditorState> ().FromInstance(buildEditorState); Container.QueueForInject(buildEditorState); BuildSaveState buildSaveState = new BuildSaveState(); buildStateMachine.AddState(StateName.BUILD_SAVE_STATE, buildSaveState); Container.Bind <IBuildSaveState> ().To <BuildSaveState> ().FromInstance(buildSaveState); BuildLoadState buildLoadState = new BuildLoadState(); buildStateMachine.AddState(StateName.BUILD_LOAD_STATE, buildLoadState); Container.Bind <IBuildLoadState> ().To <BuildLoadState> ().FromInstance(buildLoadState); Container.QueueForInject(buildLoadState); BuildObserveDialogState buildObserveDialogState = new BuildObserveDialogState(); buildStateMachine.AddState(StateName.BUILD_OBSERVE_DIALOG_STATE, buildObserveDialogState); Container.Bind <IBuildObserveDialogState> ().To <BuildObserveDialogState> ().FromInstance(buildObserveDialogState); BuildObserveState buildObserveState = new BuildObserveState(); buildStateMachine.AddState(StateName.BUILD_OBSERVE_STATE, buildObserveState); Container.Bind <IBuildObserveState> ().To <BuildObserveState> ().FromInstance(buildObserveState); Container.QueueForInject(buildObserveState); // Race StateMachine RaceSetupState raceSetupState = new RaceSetupState(); raceStateMachine.AddState(StateName.RACE_SETUP, raceSetupState); Container.Bind <IRaceSetupState> ().To <RaceSetupState> ().FromInstance(raceSetupState); Container.QueueForInject(raceSetupState); RacingState racingState = new RacingState(); raceStateMachine.AddState(StateName.RACE_RACING, racingState); Container.Bind <IRacingState> ().To <RacingState> ().FromInstance(racingState); Container.QueueForInject(racingState); RaceOverState raceOverState = new RaceOverState(); raceStateMachine.AddState(StateName.RACE_OVER, raceOverState); Container.Bind <IRaceOverState> ().To <RaceOverState> ().FromInstance(raceOverState); Container.QueueForInject(raceOverState); }
/// <summary> /// performs steps necessary for Kinect pan two-points calibration (center and left) /// </summary> private void calibrateKinectButton_Click(object sender, RoutedEventArgs e) { testState = TestState.None; EnableDisableControls(false); switch (calibrateState) { case CalibrateState.None: panKinectCalibrateScrollBar.Value = _panTiltAlignment.mksPanKinect(0.0d); calibrateKinectButton.Content = "Align Laser With Center"; calibrateState = CalibrateState.ChoosingFirst; break; case CalibrateState.ChoosingFirst: panKinectMksFirst = panKinectMks; panKinectCalibrateScrollBar.Value = _panTiltAlignment.mksPanKinect(-spanHKinect); calibrateKinectButton.Content = "Align Laser With Left"; calibrateState = CalibrateState.ChoosingSecond; break; case CalibrateState.ChoosingSecond: panKinectMksSecond = panKinectMks; computeCalibrationKinect(); calibrateKinectButton.Content = "Calculated"; calibrateState = CalibrateState.Done; break; case CalibrateState.Done: calibrateKinectButton.Content = "Calibrate Kinect"; calibrateState = CalibrateState.None; EnableDisableControls(true); break; } }
/// <summary> /// performs steps necessary for two-points calibration (center and upper left) /// </summary> private void calibrateButton_Click(object sender, RoutedEventArgs e) { testState = TestState.None; EnableDisableControls(false); bool rightGun = rightGunCheckBox.IsChecked.GetValueOrDefault(); switch (calibrateState) { case CalibrateState.None: //_panTiltAlignment.panAlign = 0.0d; //_panTiltAlignment.tiltAlign = 0.0d; //_panTiltAlignment.panFactor = 10.0d; //_panTiltAlignment.tiltFactor = 10.0d; if (rightGun) { panCalibrateScrollBar.Value = _panTiltAlignment.mksPanGunRight(0.0d); tiltCalibrateScrollBar.Value = _panTiltAlignment.mksTiltGunRight(0.0d); } else { panCalibrateScrollBar.Value = _panTiltAlignment.mksPanGunLeft(0.0d); tiltCalibrateScrollBar.Value = _panTiltAlignment.mksTiltGunLeft(0.0d); } calibrateButton.Content = "Point to Center"; calibrateState = CalibrateState.ChoosingFirst; break; case CalibrateState.ChoosingFirst: panMksFirst = panMks; tiltMksFirst = tiltMks; if (rightGun) { panCalibrateScrollBar.Value = _panTiltAlignment.mksPanGunRight(spanH); tiltCalibrateScrollBar.Value = _panTiltAlignment.mksTiltGunRight(spanV); } else { panCalibrateScrollBar.Value = _panTiltAlignment.mksPanGunLeft(spanH); tiltCalibrateScrollBar.Value = _panTiltAlignment.mksTiltGunLeft(spanV); } calibrateButton.Content = "Point to Upper Left"; calibrateState = CalibrateState.ChoosingSecond; break; case CalibrateState.ChoosingSecond: panMksSecond = panMks; tiltMksSecond = tiltMks; computeCalibration(rightGun); if (rightGun) { panAlignScrollBar.Value = _panTiltAlignment.panAlignGunRight; panFactorScrollBar.Value = _panTiltAlignment.panFactorGunRight; tiltAlignScrollBar.Value = _panTiltAlignment.tiltAlignGunRight; tiltFactorScrollBar.Value = _panTiltAlignment.tiltFactorGunRight; } else { panAlignScrollBar.Value = _panTiltAlignment.panAlignGunLeft; panFactorScrollBar.Value = _panTiltAlignment.panFactorGunLeft; tiltAlignScrollBar.Value = _panTiltAlignment.tiltAlignGunLeft; tiltFactorScrollBar.Value = _panTiltAlignment.tiltFactorGunLeft; } calibrateButton.Content = "Calculated"; calibrateState = CalibrateState.Done; break; case CalibrateState.Done: calibrateButton.Content = "Calibrate"; calibrateState = CalibrateState.None; EnableDisableControls(true); break; } }
/// <summary> /// test Kinect calibration by going through two sides of the sighting frame /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void testKinectButton_Click(object sender, RoutedEventArgs e) { calibrateState = CalibrateState.None; calibrateKinectButton.Content = "Calibrate Kinect"; switch (testState) { case TestState.None: setPanKinect(-spanHKinect); testState = TestState.LowerRight; // left testKinectButton.Content = "next>"; break; case TestState.LowerRight: setPanKinect(spanHKinect); testState = TestState.LowerLeft; testKinectButton.Content = "finish>"; break; case TestState.LowerLeft: setPanKinect(0.0d); testState = TestState.None; testKinectButton.Content = "Test Kinect"; break; } }
/// <summary> /// test calibration by going through all four corners of the sighting frame /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void testButton_Click(object sender, RoutedEventArgs e) { calibrateState = CalibrateState.None; calibrateButton.Content = "Calibrate"; switch (testState) { case TestState.None: setPan(-spanH); setTilt(spanV); testState = TestState.UpperLeft; testButton.Content = "next>"; break; case TestState.UpperLeft: setPan(spanH); setTilt(spanV); testState = TestState.UpperRight; break; case TestState.UpperRight: setPan(spanH); setTilt(-spanV); testState = TestState.LowerRight; break; case TestState.LowerRight: setPan(-spanH); setTilt(-spanV); testState = TestState.LowerLeft; testButton.Content = "finish>"; break; case TestState.LowerLeft: testState = TestState.None; testButton.Content = "Test"; setPan(0); setTilt(0); break; } }