Пример #1
0
    /**
     * Sets the pressed state of the toggle button.
     */
    /*public*/ void setPressed(boolean b) {
        if ((isPressed() == b) || !isEnabled()) {
            return;
        }

        if (b == false && isArmed()) {
            setSelected(!this.isSelected());
        }

        if (b) {
            stateMask |= PRESSED;
        } else {
            stateMask &= ~PRESSED;
        }

        fireStateChanged();

        if(!isPressed() && isArmed()) {
            int modifiers = 0;
            AWTEvent currentEvent = EventQueue.getCurrentEvent();
            if (currentEvent instanceof InputEvent) {
                modifiers = ((InputEvent)currentEvent).getModifiers();
            } else if (currentEvent instanceof ActionEvent) {
                modifiers = ((ActionEvent)currentEvent).getModifiers();
            }
            fireActionPerformed(
                new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
                                getActionCommand(),
                                EventQueue.getMostRecentEventTime(),
                                modifiers));
        }

    }
void CommandButton::paintBackground()
{
	if ( m_bFlat )
	{
		if ( isArmed() )
		{
			// Orange Border
			drawSetColor( Scheme::sc_secondary1 );
			drawOutlinedRect(0,0,_size[0],_size[1]);
		}
	}
	else
	{
		if ( isArmed() )
		{
			// Orange highlight background
			drawSetColor( Scheme::sc_primary2 );
			drawFilledRect(0,0,_size[0],_size[1]);
		}

		// Orange Border
		drawSetColor( Scheme::sc_secondary1 );
		drawOutlinedRect(0,0,_size[0],_size[1]);
	}
}
Пример #3
0
void Watchdog::startCountdownIfNeeded()
{
    if (!m_isStopped)
        return; // Already started.

    if (!isArmed())
        return; // Not executing JS script. No need to start.

    if (isEnabled()) {
        m_elapsedTime = std::chrono::microseconds::zero();
        m_startTime = currentCPUTime();
        startCountdown(m_limit);
    }
}
Пример #4
0
void CTFScrollButton::paint( void )
{
	// draw armed button text in white
	if ( isArmed() )
	{
		m_pTGA->setColor( Color(255,255,255, 0) );
	}
	else
	{
		m_pTGA->setColor( Color(255,255,255, 128) );
	}

	m_pTGA->doPaint(this);
}
Пример #5
0
void Quadcopter::loop()
{
	while (1)
	{
		if (ascending)
		{
			if (altitude >= targetAltitude)
			{
				holdAltitude();
				ascending = false;
				std::cout << "Finished ascending to: " 
					<< targetAltitude << std::endl;
			}
		}
		else if (descending)
		{
			if (altitude <= targetAltitude)
			{
				holdAltitude();
				descending = false;
				std::cout << "Finished descending to: " 
					<< targetAltitude << std::endl;
			}
		}
		
		if (communicator.receiveQueueSize())
		{
			handleIncomingMessage(communicator.dequeueMessage());
		}
		if (!failsafe)
		{
			if (std::chrono::system_clock::now() - lastRCSent >= 
				RCHeartbeatInterval)
			{
				sendRCMessage();
			}
			if (isArmed()){
				orient();
			}
		}
	}
}
Пример #6
0
drone::connectionstatus Drone::connect()
{
	if(_connected.load())
	{
		return drone::connectionstatus::ALREADY_CONNECTED;
	}

	drone::connectionstatus status = tryConnecting();
	if(status == drone::connectionstatus::CONNECTION_ESTABLISHED)
	{
		_connected.store(true);
		notifyConnectionEstablished();
		notifyStatusListeners(isArmed() ? drone::status::ARMED : drone::status::DISARMED);
	}
	else
	{
		_connected.store(false);
	}
	return status;
}
void CommandButton::paint()
{
	// Make the sub label paint the same as the button
	if ( m_pSubLabel )
	{
		if ( isSelected() )
			m_pSubLabel->PushDown();
		else
			m_pSubLabel->PushUp();
	}

	// draw armed button text in white
	if ( isArmed() )
	{
		setFgColor( Scheme::sc_secondary2 );
	}
	else
	{
		setFgColor( Scheme::sc_primary1 );
	}
	
	Button::paint();
}
Пример #8
0
Watchdog::~Watchdog()
{
    ASSERT(!isArmed());
    stopCountdown();
    destroyTimer();
}
void RocketSystem::update() {
  //static int time = 0;
  //if (time % 1000 == 0) {
  //  chprintf((BaseSequentialStream*)&SD4, "%d\r\n", RTT2MS(chibios_rt::System::getTime()));
  //}
  //time = (time+1) % 1000;

  // Poll sensors
  AccelerometerReading accelReading = accel.readAccel();
  GyroscopeReading gyrReading = gyr.readGyro();
  optional<AccelerometerReading> accelHReading;
  optional<BarometerReading> barReading;
  optional<GeigerReading> ggrReading;
  optional<GPSReading> gpsReading;
  optional<MagnetometerReading> magReading;

  if (accelH) accelHReading = (*accelH)->readAccel();
  if (bar)    barReading    = (*bar)->readBar();
  if (ggr)    ggrReading    = (*ggr)->readGeiger();
  if (gps)    gpsReading    = (*gps)->readGPS();
  if (mag)    magReading    = (*mag)->readMag();

  SensorMeasurements meas {
    .accel  = std::experimental::make_optional(accelReading),
    .accelH = accelHReading,
    .bar    = barReading,
    .ggr    = ggrReading,
    .gps    = gpsReading,
    .gyro   = std::experimental::make_optional(gyrReading),
    .mag    = magReading
  };

  // Update the world estimate
  WorldEstimate estimate = estimator.update(meas);

  // Run the controllers
  ActuatorSetpoint actuatorSp = {0,0,0,0};

  // Run state machine
  switch (state) {
  case RocketState::DISARMED:
    state = DisarmedState(meas, estimate, actuatorSp);
    break;
  case RocketState::PRE_ARM:
    state = PreArmState(meas, estimate, actuatorSp);
    break;
  case RocketState::ARMED:
    state = ArmedState(meas, estimate, actuatorSp);
    break;
  case RocketState::FLIGHT:
    state = FlightState(meas, estimate, actuatorSp);
    break;
  case RocketState::APOGEE:
    state = ApogeeState(meas, estimate, actuatorSp);
    break;
  case RocketState::DESCENT:
    state = DescentState(meas, estimate, actuatorSp);
    break;
  case RocketState::RECOVERY:
    state = RecoveryState(meas, estimate, actuatorSp);
    break;
  default:
    break;
  }

  // Update motor outputs
  motorMapper.run(isArmed(), actuatorSp);

  // Poll for controller input
  ControllerInput input = inputSource.read();

  // Update streams
  updateStreams(meas, estimate, actuatorSp);
}