Ejemplo n.º 1
0
void ConfigMenuItem::Render(LCD& lcd, byte cols, byte rows) const {
	size_t size = 0;
	long value = m_value->Get();

	// render label
	lcd.setCursor(0, 0);
	size = lcd.print(m_label);
	Pad(lcd, cols, size);

	// render value
	lcd.setCursor(2, 1);
	size = m_value->PrintValue(lcd);
	Pad(lcd, cols - 4, size);

	// render navigation
	lcd.setCursor(0, 1);
	if (value > m_value->GetMin()) {
		lcd.print(ARROW_LEFT);
	} else {
		lcd.print(F(" "));
	}
	lcd.print(F(" "));

	lcd.setCursor(cols - 2, 1);
	lcd.print(F(" "));
	if (value < m_value->GetMax()) {
		lcd.print(ARROW_RIGHT);
	} else {
		lcd.print(F(" "));
	}
}
Ejemplo n.º 2
0
void ActionMenuItem::Render(LCD& lcd, byte cols, byte rows) const {
	lcd.setCursor(0, 0);
	Pad(lcd, cols, lcd.print(m_label));

	lcd.setCursor(0, 1);
	Pad(lcd, cols, lcd.print(m_prompt));
}
Ejemplo n.º 3
0
void InfoIdleScreen::Render(LCD& lcd, byte cols, byte rows) const {
	lcd.setCursor(0, 0);
	if (m_sequence->IsRunning()) {
		int _chars = 0;
		_chars += lcd.print(F("Shot "));
		_chars += lcd.print(m_sequence->GetShotsFired());
		_chars += lcd.print(F("/"));
		_chars += lcd.print(m_sequence->GetShotsTotal());
		Pad(lcd, cols, _chars);

		_chars = 0;
		lcd.setCursor(0, 1);
		_chars += lcd.print(F("Rem. "));
		long _secondsRemaining = m_sequence->GetSecondsRemaining();
		_chars += PrintTime(_secondsRemaining, lcd);
		Pad(lcd, cols, _chars);
	} else {
		Pad(lcd, cols, lcd.print(F("Idle")));
		lcd.setCursor(0, 1);
		Pad(lcd, cols, 0);
	}
}
Ejemplo n.º 4
0
int main()
{
  signal(SIGINT, sig_handler);

  LCD lcd;
  LED led;
  Knob knob;
  Button button;

  int knob_value = 0;
  bool button_value = false;

  char msg[18];
  std::string ip;

  led.on();

  while( (ip = get_ip("wlan0")).length() == 0 )
  {
    lcd.clear();
    lcd.write("looking for IP   ");
    sleep(1);
  }

  led.off();

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.write("My IP Address:");
  lcd.setCursor(1, 0);
  lcd.write(ip.c_str());

  sleep(3);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.write(ip.c_str());

  while( running == 0 )
  {
    lcd.setCursor(1, 0);
    snprintf(msg, sizeof(msg), "knob: %d%%       ", knob.percent());
    lcd.write(msg);

    if( button.value() )
    {
      led.on();
    }
    else
    {
      led.off();
    }

    if( (button_value != button.value()) || (knob.percent() != knob_value) )
    {
      button_value = button.value();
      knob_value = knob.percent();
   //   post( button_value, knob_value );
    }

    usleep(100000);
  }

  return MRAA_SUCCESS;
}