Пример #1
0
void Interface::updateLabels()
{
  bool isSimulation = Globals::self().isSimulation();
  Quad *quad;
  if (isSimulation) {
    quad = Globals::self().simulatedQuad();
  } else {
    quad = Globals::self().remoteQuad();
  }
   
  QuadState state = quad->state();

  positionLabel->setText( toCoords( state.pos ) );
  velocityLabel->setText( toCoords( state.vel ) );

  Vector3d accel = Globals::self().imu()->lastAcceleration();
  Vector3d gyro = Globals::self().imu()->lastAngularAcceleration();

  accelerometersLabel->setText(toCoords(accel));
  gyroLabel->setText(toCoords(gyro, 3));

  // Update plot 
  double duration = quad->path_ != nullptr ? quad->path_->duration() : 0;
  interceptPlot->setIntercept(quad->intercept, duration);

  runPauseSimulationButton->setText(Globals::self().isSimulatedQuadRunning() ? "Pause" : "Run");

  Vector4d propInput = Globals::self().propellers()->input();

  // Update slider values
  for ( int i = 0; i < 4; ++i ) {
    double p = propInput[i];
    int v = int(p * m_propInputs[i]->maximum());
    m_propInputs[i]->setValue( v );
  }
}
Пример #2
0
 inline ssvs::Vec2i toCoords(const ssvs::Vec2<T>& mValue)
 {
     return {toCoords(mValue.x), toCoords(mValue.y)};
 }