예제 #1
0
 /// <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);
 }
예제 #2
0
        /// <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());
            }
        }
예제 #3
0
        /// <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;
            }
            }
        }
예제 #4
0
 /// <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";
     }
 }
예제 #5
0
        /// <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);
        }
예제 #6
0
 private void buttonUpdateCameraList_Click(object sender, EventArgs e)
 {
     MotionCapture.UpdateCameraList();
     OptitrackCameraList.TransmitListOfCameras();
 }