void u8g_box_frame(uint8_t a) { u8g_DrawStr(&u8g, 0, 0, "drawBox"); u8g_DrawBox(&u8g, 5,10,20,10); u8g_DrawBox(&u8g, 10+a,15,30,7); u8g_DrawStr(&u8g, 0, 30, "drawFrame"); u8g_DrawFrame(&u8g, 5,10+30,20,10); u8g_DrawFrame(&u8g, 10+a,15+30,30,7); }
// Showing the record screen void showRecordScreen(void){ char lengthStr[4], totLenTimeStr[9], curLenTimeStr[9]; itoa(currentLength, lengthStr, 10); timeToString(totLenTime, totLenTimeStr); timeToString(curLenTime, curLenTimeStr); u8g_FirstPage(&u8g); u8g_SetDefaultForegroundColor(&u8g); u8g_SetFont(&u8g, u8g_font_6x13); do{ // Draw boxes u8g_DrawLine(&u8g, 64, 0, 64, 64); u8g_DrawLine(&u8g, 64, 32, 128, 32); // Draw text u8g_DrawFrame(&u8g, 0, 0, 128, 64); u8g_DrawStr(&u8g, (64 - u8g_GetStrWidth(&u8g, "Length"))/2, 5, "Length"); u8g_DrawStr(&u8g, (64 - u8g_GetStrWidth(&u8g, lengthStr))/2, 32+5, lengthStr); u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, "Total"))/2, 5, "Total"); u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, totLenTimeStr))/2, 5+15, totLenTimeStr); u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, "Last len"))/2, 5+32, "Last len"); //u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, timeToString(lastLengthTime, rS)))/2, 5+32+15, timeToString(lastLengthTime, rS)); } while (u8g_NextPage(&u8g)); }
void showHistoryTotal(void){ EEOpen(); uint8_t lengths = EEReadByte(2); history.totalLength = lengths; history.showLength = 255; // This will be wrong till I update the record length uint16_t totalTime = EEReadByte(3) << 8; totalTime += EEReadByte(4); // Creating the times for the history display char lengthStr[4], totalTimeStr[10]; itoa(lengths, lengthStr, 10); timeToString(totalTime, totalTimeStr); u8g_FirstPage(&u8g); u8g_SetDefaultForegroundColor(&u8g); do { u8g_DrawFrame(&u8g, 0, 0, 128, 64); u8g_DrawLine(&u8g, 64, 0, 64, 64); u8g_DrawStr(&u8g, (64 - u8g_GetStrWidth(&u8g, "Lengths"))/2, 5, "Lengths"); u8g_DrawStr(&u8g, (64 - u8g_GetStrWidth(&u8g, lengthStr))/2, 5+20, lengthStr); u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, "Time"))/2, 5, "Time"); u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, totalTimeStr))/2, 5+20, totalTimeStr); } while (u8g_NextPage(&u8g)); }
void drawMainMenu(uint8_t menuPosition){ char *mainMenuStrings[MAIN_MENU_ITEMS] = {"Last swim", "New Swim"}; uint8_t i, h; u8g_uint_t w, d; u8g_SetFont(&u8g, u8g_font_6x13); u8g_SetFontRefHeightText(&u8g); u8g_SetFontPosTop(&u8g); h = u8g_GetFontAscent(&u8g) - u8g_GetFontDescent(&u8g); w = u8g_GetWidth(&u8g); char vccChar[10]; my_itoa(vcc, vccChar, 10); // Doing the actual drawing u8g_FirstPage(&u8g); do{ for (i = 0; i < MAIN_MENU_ITEMS; i++){ d = (w - u8g_GetStrWidth(&u8g, mainMenuStrings[i])) / 2; u8g_SetDefaultForegroundColor(&u8g); if (i == menuPosition){ u8g_DrawBox(&u8g, 0, i*h+1, w, h); u8g_SetDefaultBackgroundColor(&u8g); } u8g_DrawStr(&u8g, d, i*h, mainMenuStrings[i]); } u8g_SetDefaultForegroundColor(&u8g); u8g_DrawFrame(&u8g, 0, 0, 128, 64); u8g_DrawStr(&u8g, 5, 50, vccChar); } while (u8g_NextPage(&u8g)); }
/* draw procedure of the u8g picture loop */ void draw(void) { u8g_SetDefaultForegroundColor(&u8g); if ( is_led_on ) u8g_DrawBox(&u8g, 0,0,5,5); else u8g_DrawFrame(&u8g, 0,0,5,5); /* call the m2 draw procedure */ m2_Draw(); }
void m2_u8g_draw_frame(uint8_t x0, uint8_t y0, uint8_t w, uint8_t h) { u8g_uint_t y; y = m2_u8g_dev_variables.m2_u8g_height_minus_one; y -= y0; y -= h; y++; /* 13 Jan 2013: Issue 95 */ u8g_SetColorIndex(m2_u8g_dev_variables.m2_u8g, m2_u8g_dev_variables.m2_u8g_draw_color); u8g_DrawFrame(m2_u8g_dev_variables.m2_u8g, x0, y, w, h); /* printf("draw_frame: x=%d y=%d w=%d h=%d\n", x0, y, w, h); */ }
/* drawing callback for battery */ int gui_battery_draw_cb(u8g_t *u8g, struct GuiWindow *win, struct GuiPoint abspos) { struct GuiBattery *batt = (struct GuiBattery*)win; int percent = batt->percent; if (percent < 0) { percent = 0; } if (percent > 100) { percent = 100; } u8g_SetDefaultMidColor(u8g); u8g_DrawBox(u8g, abspos.x, abspos.y, percent / (100/batt->win.size.x), batt->win.size.y); u8g_SetDefaultForegroundColor(u8g); u8g_DrawFrame(u8g, abspos.x, abspos.y, batt->win.size.x, batt->win.size.y); u8g_DrawFrame(u8g, abspos.x+batt->win.size.x, abspos.y+2, 2, 4); u8g_SetFont(u8g, u8g_font_helvR08); char s[12]; #if 0 /* print percents */ int k = itostr(s, 16, vbat_percent); s[k] = '%'; s[k+1] = '\0'; #else /* print voltage */ int vbat100 = batt->vbat_measured / 10; if ((batt->vbat_measured % 10) >= 5) { vbat100 += 1; } int k = itostr(s, 16, vbat100); memmove(s+2, s+1, k-1); s[1] = '.'; s[k+1] = 'V'; s[k+2] = batt->batt_state; s[k+3] = '\0'; #endif u8g_DrawStr(u8g, abspos.x+batt->win.size.x+4, abspos.y+batt->win.size.y, s); return 0; }
void m2_u8g_draw_frame_shadow(uint8_t x0, uint8_t y0, uint8_t w, uint8_t h) { u8g_uint_t y; y = m2_u8g_dev_variables.m2_u8g_height_minus_one; y -= y0; y -= h; y++; /* 13 Jan 2013: Issue 95 */ w--; h--; u8g_SetColorIndex(m2_u8g_dev_variables.m2_u8g, m2_u8g_dev_variables.m2_u8g_draw_color); u8g_DrawFrame(m2_u8g_dev_variables.m2_u8g, x0, y, w, h); u8g_DrawVLine(m2_u8g_dev_variables.m2_u8g, x0+w, y+1, h); u8g_DrawHLine(m2_u8g_dev_variables.m2_u8g, x0+1, y+h, w); }
// Lua: u8g.drawFrame( self, x, y, width, height ) static int lu8g_drawFrame( lua_State *L ) { lu8g_userdata_t *lud; if ((lud = get_lud( L )) == NULL) return 0; u8g_uint_t args[4]; lu8g_get_int_args( L, 2, 4, args ); u8g_DrawFrame( LU8G, args[0], args[1], args[2], args[3] ); return 0; }
void showChargingScreen(void){ char vccChar[10]; my_itoa(vcc, vccChar, 10); u8g_FirstPage(&u8g); u8g_SetDefaultForegroundColor(&u8g); do { u8g_DrawFrame(&u8g, 0, 0, 128, 64); // Show the first length u8g_DrawStr(&u8g, (124 - u8g_GetStrWidth(&u8g, "Charging"))/2, 5, "Charging"); u8g_DrawStr(&u8g, 60, 20, vccChar); } while (u8g_NextPage(&u8g)); }
void m2_u8g_draw_box_icon(uint8_t x, uint8_t y, uint8_t font, uint8_t icon) { uint8_t h; h = m2_u8g_get_box_icon_size(font); y = m2_u8g_height_minus_one - y; u8g_SetColorIndex(m2_u8g, m2_u8g_current_text_color); u8g_DrawFrame(m2_u8g, x, y - h, h, h); if ( icon == M2_ICON_TOGGLE_ACTIVE || icon == M2_ICON_RADIO_ACTIVE ) { h -= 4; u8g_DrawBox(m2_u8g, x + 2, y - h - 2, h, h); } }
void showLength(void){ uint8_t curTime = EEReadByte(5+history.showLength); char lengthStr[4], timeStr[9]; itoa(history.showLength+1, lengthStr, 10); timeToString(curTime, timeStr); u8g_FirstPage(&u8g); u8g_SetDefaultForegroundColor(&u8g); do { u8g_DrawFrame(&u8g, 0, 0, 128, 64); u8g_DrawLine(&u8g, 64, 0, 64, 64); u8g_DrawStr(&u8g, (64 - u8g_GetStrWidth(&u8g, "Length"))/2, 5, "Length"); u8g_DrawStr(&u8g, (64 - u8g_GetStrWidth(&u8g, lengthStr))/2, 5+20, lengthStr); u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, "Time"))/2, 5, "Time"); u8g_DrawStr(&u8g, 64+(64 - u8g_GetStrWidth(&u8g, timeStr))/2, 5+20, timeStr); } while (u8g_NextPage(&u8g)); }
void u8g_DrawInfo(void) //Malen der Batterie, Anzeige in % { ///////Infos//// X ///////// // Karte //Pfeil// Frei // // akt. // // hier: // // Raum ///////// // // //Info // // // //Karte// // ////////////////////////////// u8g_DrawHLine(&u8g, 0, 6, 128); //Horizontale Abgrenzungslinie u8g_SetFont(&u8g, u8g_font_4x6); //Schriftart //////Batterie//////////// u8g_DrawFrame(&u8g, 0, 0, 10, 5); //Batteriekörper u8g_DrawPixel(&u8g, 10, 2); int8_t batt_volumeVar = batt_percent/11; //Berechnung Füllung if(batt_volumeVar > 8) batt_volumeVar = 8; if(batt_volumeVar < 0) batt_volumeVar = 0; u8g_DrawBox(&u8g, 1, 1, batt_volumeVar, 3); //Füllung //Anzeige daneben u8g_DrawLong(15, 5, batt_percent); u8g_DrawStr(&u8g, 25, 5, "%"); //Fehleranzeige daneben: if(timer_disp_msg == 0) { disp_msg_i ++; if(disp_msg_i == DISP_MSG_I_TOP) { disp_msg_i = 0; if(!(is_msg & (1<<1))) { which_msg = 0; } else { is_msg &= ~ (1<<1); } } is_msg &= ~ (1<<0); } switch(disp_msg_i) { case 0: if(batt_percent < 20) { set_msg(); } break; case 1: if((check_srf & (1<<0)) || (check_srf & (1<<1)) || (check_srf & (1<<2)) || (check_srf & (1<<3))) { set_msg(); } break; case 2: if((check_srf & (1<<4)) || (check_srf & (1<<5)) || (check_srf & (1<<6)) || (check_srf & (1<<7))) { set_msg(); } break; case 3: if((check_srf & (1<<8)) || (check_srf & (1<<9)) || (check_srf & (1<<10)) || (check_srf & (1<<11))) { set_msg(); } break; case 4: if((check_srf & (1<<12)) || (check_srf & (1<<13)) || (check_srf & (1<<14)) || (check_srf & (1<<15))) { set_msg(); } break; case 5: if(check_mlx & (1<<0)) { set_msg(); } break; case 6: if(check_mlx & (1<<1)) { set_msg(); } break; case 7: if((check_um6 & (1<<0)) || (check_um6 & (1<<1))) { set_msg(); } break; case 8: if(motor_off) { set_msg(); } break; case 9: if(timer_bt_is_busy > 0) { set_msg(); } break; case 10: if(setup) { set_msg(); } break; case 11: if(check_um6 & (1<<2)) { set_msg(); } case 12: if(!use_map) { set_msg(); } break; } u8g_DrawStr(&u8g, 35, 5, disp_msg[which_msg]); }