void Parkautomat::enterStateOff()
{
    state = OFF;
    ledsOff();
    _shield.sevenSeg.clear();
    _scheduler.removeTask(&countdown);
}
Пример #2
0
/**
   Handle game over event
*/
static void _gameOver(NinjaState *state) {
  bool win = (state->p1Score == 2);

  if (win) {
    setAllLeds(0, 255, 0);
  } else {
    setAllLeds(255, 0, 0);
  }

  int16_t xp = 0;

  char buffer[32];

  if (win) {
    xp += 15;
    int16_t bonus = 6 * (state->p2Level - ANXGetLevel());
    if (bonus < 0) bonus = 0;
    xp += bonus;
    sprintf(buffer, "Victory!\n%d XP", xp);
  } else {
    xp += state->p1Score * 5;
    sprintf(buffer, "Fail :(\n%d XP", xp);
  }

  //Give them credit
  xp = max(0, xp);
  addExperience(xp);

  statusDialog(buffer);
  safeDisplay();
  safeWaitForButton();

  ledsOff();
}
void Parkautomat::enterStateUnpayed()
{
    state = UNPAYED;
    ledsOff();
    _shield.sevenSeg.showNumber(0);
    _shield.setLed(ParkingShield::RED_LED, true);
    _scheduler.removeTask(&countdown);
}
Пример #4
0
// almost same as TinyOS leds.flash()
static void flashLeds(uint8_t mask)
{
    uint_t i;
    ledsOff(ALL_LEDS);
    for (i = 0; i < 6; ++i) {
        ledsToggle(mask);
        mdelay(150);
    }
}
void Parkautomat::enterStatePayed()
{
    state = PAYED;
    ledsOff();
    _shield.setLed(ParkingShield::GREEN_LED, true);
}
void Parkautomat::enterStatePayedTimeoutWarning()
{
    state = PAYED_TIMEOUT_WARNING;
    ledsOff();
    _shield.setLed(ParkingShield::YELLOW_LED, true);
}