Exemplo n.º 1
0
void render_battery(int x,int y,int level) {

  uint16 image_data[384]; // 24*16

  // only move bat level, if there's a big difference to prevent flickering.
  level = (((float) level)/100)*23;
  uint16 level_delta = level-last_batlevel;
  if(level_delta < 0) level_delta = 0-level_delta;
  if(level_delta <= 1) level = last_batlevel;

  last_batlevel = level;

  for(int x=0;x<24;x++) {
    for(int y=0;y<16;y++) {
      int16 render_value = battery_mask[y][x];

      if(x <= level) {
        if(render_value > 0)  render_value = 0xF1FF - (2081*(render_value-1));
                         else render_value = header_color;// HEADER_COLOR; // header background
      }

      if(x > level) {
        if(render_value > 0)  render_value = BACKGROUND_COLOR;  //6243 - (2081*(render_value-1));
                         else render_value = header_color;//HEADER_COLOR; // header background
      }
      image_data[(y*24)+x] = render_value;
    }
  }

  display_draw_image(104,0,24,16,image_data);
}
Exemplo n.º 2
0
void
display_gui_about (void (*callback) (void))
{
    gui_about_callback = callback;
    current_screen = display_gui_screen_about;
    display_gui_button_bar_visible = false;
    display_clear();
    display_draw_image (0, 2, image_logo);
    display_draw_string_delayed (62, 5, 2, "ALMOND", 400);
    display_draw_string_delayed (62, 22, 0, "Autonomous", 100);
    display_draw_string_delayed (62, 30, 0, "Logging And", 100);
    display_draw_string_delayed (62, 38, 0, "Management", 100);
    display_draw_string_delayed (62, 46, 0, "Of Network", 100);
    display_draw_string_delayed (62, 54, 0, "Devices", 100);
    display_gui_sleep (2000);
    display_clear();
    display_draw_string_delayed (30, 30, 0, "starring", 100);
    display_gui_sleep (1000);

    static const uint8_t *images[] = {team_salomon, team_linus, team_maximilian, team_sean, team_stefan, team_matthias, team_pascal, team_thomas, team_christian, NULL};
    static const char *names[] = {"Salomon", "Linus", "Maxi", "Sean", "Stefan", "Matthias", "Pascal", "Thomas", "Christian", NULL};
    static const char *assignments[] = {"Protocols", "Drivers, Nut", "Hardware", "Pong, SD", "Gui, Bluetooth", "Backend, Gui", "Gui EMU, Docu", "Documentation", "Backend", NULL};

    uint8_t current_person = 0;

    while (images[current_person] != NULL)
    {
        display_clear();
        display_draw_image (0, 0, images[current_person]);
        display_draw_string_delayed (45, 20, 2, names[current_person], CREDITS_CHARACTER_DELAY);
        display_draw_string_delayed (45, 38, 0, assignments[current_person], CREDITS_CHARACTER_DELAY);
	
        display_gui_sleep (CREDITS_DELAY);
        current_person++;
    }

    gui_about_callback();
}
Exemplo n.º 3
0
void
display_gui_image (const uint8_t* image, void (*callback) (void))
{
    current_screen = display_gui_screen_fullscreenimage;
    gui_image_callback = callback;
    display_gui_a_function = "Dismiss";
    display_gui_b_function = "";
    display_gui_left_available = false;
    display_gui_up_available = false;
    display_gui_right_available = false;
    display_gui_down_available = false;
    display_gui_button_bar_visible = true;

    display_clear();
    display_draw_image (0, 0, image);
}
Exemplo n.º 4
0
void
display_gui_standby ()
{
	rtc_init();
	set_time(1291482141);
	current_screen = display_gui_screen_standby;
	
    display_gui_button_bar_visible = false;

	display_clear();
	
	
	
	
	display_draw_string(DISPLAY_WIDTH/2-17,2,0,"Almond");
	
	display_draw_string(DISPLAY_WIDTH-13,2,0,"3G");
	
	
	display_draw_image(DISPLAY_WIDTH-13,2,bluetooth);
	
	
	display_draw_string(20,DISPLAY_HEIGHT-10,0,"32C");
	
	display_draw_rect(18,DISPLAY_HEIGHT-12,37,DISPLAY_HEIGHT-2,false);
	
	display_draw_string(43,DISPLAY_HEIGHT-10,0,"1024hPa");
	
	display_draw_rect(42,DISPLAY_HEIGHT-12,84,DISPLAY_HEIGHT-2,false);
	
	display_draw_string(90,DISPLAY_HEIGHT-10,0,"35%");
	
	display_draw_rect(88,DISPLAY_HEIGHT-12,108,DISPLAY_HEIGHT-2,false);
	
	display_draw_string(4,DISPLAY_HEIGHT-40,0,"A delightful status\n");
	display_draw_string(4,DISPLAY_HEIGHT-30,0,"");
	
	
	uint32_t current_timestamp = get_time();
	struct time_struct current_time;
	char time[6];
	timestamp_to_time(current_timestamp, 3600, &current_time);
	sprintf(time,"%02d:%02d",current_time.tm_hour,current_time.tm_min);
	display_draw_string(DISPLAY_WIDTH/2-22,10,2,time);
}
Exemplo n.º 5
0
/**
 * Draw a battery sign on the screen
 *
 * @param x        X location on screen
 * @param y        Y location on screen
 * @param level    level of charge in percent
 * @param charging display charging symbol or not
 */
void render_battery(int x,int y,int level,int charging) {
 
  uint16 image_data[384]; // 24*16

  // only move bat level, if there's a big difference to prevent flickering.
  //level = (((float) level)/100)*23;
  // rescale level based upon our new shut-down level of 25%
   
   int lfactor;
   lfactor = level - ((100 - level)/3);

   level = (((float) lfactor)/100)*23;


  uint16 level_delta = level-last_batlevel;
  if(level_delta < 0) level_delta = 0-level_delta;
  if(level_delta <= 1) level = last_batlevel;

  last_batlevel = level;

  for(int x=0;x<24;x++) {
    for(int y=0;y<16;y++) {
      int16 render_value;
      if(!charging) render_value = battery_mask[y][x];
               else render_value = battery_mask_chg[y][x];

      if(render_value != 9) {
        if(x <= level) {
          if(render_value > 0)  render_value = 0xF1FF - (2081*(render_value-1));
                           else render_value = header_color;// HEADER_COLOR; // header background
        }

        if(x > level) {
          if(render_value > 0)  render_value = BACKGROUND_COLOR;  //6243 - (2081*(render_value-1));
                           else render_value = header_color;//HEADER_COLOR; // header background
        }
      }
      if(render_value == 9) render_value = 0xF1F0 - (2001*(render_value-1));
      image_data[(y*24)+x] = render_value;
    }
  }

  display_draw_image(104,0,24,16,image_data);
}
Exemplo n.º 6
0
void render_lock(bool on) {

  if((on == lock_state) && (on != true)) return;
  lock_state = on;

  uint16 image_data[88]; // 8*11
  for(int x=0;x<8;x++) {
    for(int y=0;y<11;y++) {
      int16 render_value = lock_mask[y][x];

      if(render_value > 0)  render_value = 0xFFFF;
                       else render_value = 0;

      if(on == false) render_value = 0;

      image_data[(y*8)+x] = render_value;
    }
  }

  display_draw_image(128-8,128-11,8,11,image_data);
}
Exemplo n.º 7
0
void
display_gui_draw_button_bar (void)
{
    // Clear background
    display_set_inverted (true);
    display_draw_rect (0, BUTTON_INFO_BAR_TOP - 1, DISPLAY_WIDTH, DISPLAY_HEIGHT - 1, true);
    display_set_inverted (false);
    // Arrows panel

    if (display_gui_right_available || display_gui_left_available || display_gui_up_available || display_gui_down_available)
    {
        display_draw_rect (0, BUTTON_INFO_BAR_TOP, 29, DISPLAY_HEIGHT, true);
        display_set_pixel (0, BUTTON_INFO_BAR_TOP, false);
        display_set_pixel (29, BUTTON_INFO_BAR_TOP, false);
    }

    // A-Button panel

    if (strcmp (display_gui_a_function, ""))
    {
        display_draw_rect (31, BUTTON_INFO_BAR_TOP, 31 + 48, DISPLAY_HEIGHT, true);
        display_set_pixel (31, BUTTON_INFO_BAR_TOP, false);
        display_set_pixel (31 + 48, BUTTON_INFO_BAR_TOP, false);
    }

    // B-Button panel

    if (strcmp (display_gui_b_function, ""))
    {
        display_draw_rect (81, BUTTON_INFO_BAR_TOP, 127, DISPLAY_HEIGHT, true);
        display_set_pixel (81, BUTTON_INFO_BAR_TOP, false);
        display_set_pixel (127, BUTTON_INFO_BAR_TOP, false);
    }

    // A/B Functions
    display_set_inverted (true);

    display_draw_string (32, BUTTON_INFO_BAR_TOP + 1, 0, display_gui_a_function);

    display_draw_string (82, BUTTON_INFO_BAR_TOP + 1, 0, display_gui_b_function);

    // Arrows
    uint8_t current_x = 0;

    if (display_gui_left_available)
    {
        display_draw_image (current_x, BUTTON_INFO_BAR_TOP + 1, arrow_left);
        current_x += 8;
    }

    if (display_gui_right_available)
    {
        display_draw_image (current_x, BUTTON_INFO_BAR_TOP + 1, arrow_right);
        current_x += 8;
    }

    if (display_gui_up_available)
    {
        display_draw_image (current_x, BUTTON_INFO_BAR_TOP + 1, arrow_up);
        current_x += 8;
    }

    if (display_gui_down_available)
    {
        display_draw_image (current_x, BUTTON_INFO_BAR_TOP + 1, arrow_down);
    }

    display_set_inverted (false);
}