/// <summary> /// Triggered when user presses OK in "Open File" dialog /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void openFileDialogCalibrationFile_FileOk(object sender, CancelEventArgs e) { //set the filename textBoxCalibrationFilePath.Text = openFileDialogCalibrationFile.FileName; //load the selected profile MotionCapture.LoadProfile(textBoxCalibrationFilePath.Text); }
/// <summary> /// Polling timer on form - used to fetch coordinates from motion capture interface /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timerPollCameraInterface_Tick(object sender, EventArgs e) { MotionCapture.UpdateCoordinates(); if (MarkerList.listOfMarkers.Count != 0) { statusBar1.Text = ("Cameras Running x[0]: " + MarkerList.listOfMarkers[0].xCoordinate.ToString("N2") + " Number of markers detected: " + MarkerList.listOfMarkers.Count.ToString()); } }
/// <summary> /// Converts byte to command and then executes command /// </summary> /// <param name="receivedCommand"></param> public void handleCommand(byte[] receivedCommand) { int command = (int)receivedCommand[2]; switch (command) { // 0 is Start Cameras case 0: { MotionCapture.StartCameras(); camerasStartedEvent(); break; } // 1 is Stop Cameras case 1: { MotionCapture.StopCameras(); break; } // 2 is Send Camera Coordinates case 2: { MotionCapture.UpdateCameraList(); OptitrackCameraList.TransmitListOfCameras(); break; } // 3 is Start Treadmill At Fixed Speed case 3: { TreadmillController.SetSpeed((float)BitConverter.ToDouble(receivedCommand, 4)); break; } // 4 is Stop Treadmill case 4: { TreadmillController.SetSpeed(0.0f); break; } //8 is toggle feet on/off case 8: { break; } default: { System.Diagnostics.Debug.WriteLine("Invalid command received: " + command.ToString()); break; } } }
/// <summary> /// Starts and stops the cameras server-side /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonCameraControl_Click(object sender, EventArgs e) { if (buttonCameraControl.Text == "Start Cameras") { statusBar1.Text = "Starting Cameras"; MotionCapture.LoadProfile(textBoxCalibrationFilePath.Text); MotionCapture.StartCameras(); statusBar1.Text = "Cameras Started"; timerPollCameraInterface.Enabled = true; buttonCameraControl.Text = "Stop Cameras"; } else { timerPollCameraInterface.Enabled = false; MotionCapture.StopCameras(); statusBar1.Text = "Cameras Stopped"; buttonCameraControl.Text = "Start Cameras"; } }
/// <summary> /// Constructor /// </summary> public MainForm() { InitializeComponent(); //name thread (useful for debug) Thread.CurrentThread.Name = "Main Form Thread"; //load camera calibration profile MotionCapture.LoadProfile("C:\\Users\\mag501\\Documents\\SVN_WorkingCopy\\Stromohab\\stromohab_08\\OptiTrack_Calibrations\\CalibrationFile_020609.cal"); //register custom events OptitrackCommandParser_Server.camerasStartedEvent += new OptitrackCommandParser_Server.CamerasStartedHandler(commandParser_camerasStartedEvent); TCPServer.ServerListeningStartedEvent += new TCPServer.ServerListeningStartedHandler(TCPServer_ServerListeningStartedEvent); TCPServer.ClientConnectionAcceptedEvent += new TCPServer.ClientConnectionAcceptedHandler(TCPServer_ClientConnectionAcceptedEvent); //start listening for incoming connections TCPServer tcpServer = new TCPServer(); //enumerate COM ports foreach (string portName in System.IO.Ports.SerialPort.GetPortNames()) { comboBoxTreadmillPort.Items.Add(portName); } comboBoxTreadmillPort.Text = (string)comboBoxTreadmillPort.Items[comboBoxTreadmillPort.Items.Count - 1]; TreadmillController.SetSerialPortName(comboBoxTreadmillPort.Text); }
private void buttonUpdateCameraList_Click(object sender, EventArgs e) { MotionCapture.UpdateCameraList(); OptitrackCameraList.TransmitListOfCameras(); }