title: Class Design in Qt for inter thread communication
body: <p><strong>Problem statement</strong> : to track an object with a camera and move the camera in azimuth and elevation accordingly.</p>
  
  <p><strong>Process</strong> : camera acquires images of the object....each frame of camera is processed to find the object(which is supposed to be tracked...) and the information generated in each frame is passed to the mechanical device (gimbal...) to move the camera in pan and tilt...</p>
  
  <p><strong>Design</strong> : the main Gui is run in a thread and camera and gimbal in 2 other thread...info generated in camera thread is passed on to gimbal thread and the same thread(camera thread...) displays the tracked image...</p>
  
  <p><strong>CONSTRAINT: display rate is faster than move rate of gimbal</strong>...so in each frame...</p>
  
  <ol>
  <li>frame is processed and displayed (at 10 ms rate)</li>
  <li>info generated is passed onto gimbal</li>
  <li>gimbal thread is suspended for a longer time (100 ms) to give time to the mechanical parts    to move and ensure no new update comes to gimbal till it completes its movement..</li>
  </ol>
  
  <p>the following diagram shows the design of classes and signal and slot connections in Qt..</p>
  
  <p><img src="https://i.stack.imgur.com/i0uJz.png" alt="enter image description here"></p>
  
  <p>please suggest any better way to go about the problem if possible...</p>
  
  <p><strong>ERROR</strong>: sometimes i get an error...</p>
  
  <p><strong>QObject::killTimers: timers cannot be stopped from another thread</strong></p>