void Display::DrawSignalStrength() { //percentage 0-5 u8g_DrawHLine(&u8g,SIGNALPERCENTAGE_X ,SIGNALPERCENTAGE_Y + 15,2); u8g_DrawHLine(&u8g,SIGNALPERCENTAGE_X + 3 ,SIGNALPERCENTAGE_Y + 15,2); u8g_DrawHLine(&u8g,SIGNALPERCENTAGE_X + 6 ,SIGNALPERCENTAGE_Y + 15,2); u8g_DrawHLine(&u8g,SIGNALPERCENTAGE_X + 9 ,SIGNALPERCENTAGE_Y + 15,2); u8g_DrawHLine(&u8g,SIGNALPERCENTAGE_X + 12,SIGNALPERCENTAGE_Y + 15,2); if (radioSignal >= 14) { u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X ,SIGNALPERCENTAGE_Y + 12, 3); u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 1 ,SIGNALPERCENTAGE_Y + 12, 3); } if (radioSignal >= 24) { u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 3 ,SIGNALPERCENTAGE_Y + 9 , 6); u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 4 ,SIGNALPERCENTAGE_Y + 9 , 6); } if (radioSignal >= 34) { u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 6 ,SIGNALPERCENTAGE_Y + 6 , 9); u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 7 ,SIGNALPERCENTAGE_Y + 6 , 9); } if (radioSignal >= 44) { u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 9 ,SIGNALPERCENTAGE_Y + 3 , 12); u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 10,SIGNALPERCENTAGE_Y + 3 , 12); } if (radioSignal >= 54) { u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 12,SIGNALPERCENTAGE_Y , 15); u8g_DrawVLine(&u8g,SIGNALPERCENTAGE_X + 13,SIGNALPERCENTAGE_Y , 15); } }
static void u8g_draw_filled_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) { /* upper right */ if ( option & U8G_DRAW_UPPER_RIGHT ) { u8g_DrawVLine(u8g, x0+x, y0-y, y+1); } /* upper left */ if ( option & U8G_DRAW_UPPER_LEFT ) { u8g_DrawVLine(u8g, x0-x, y0-y, y+1); } /* lower right */ if ( option & U8G_DRAW_LOWER_RIGHT ) { u8g_DrawVLine(u8g, x0+x, y0, y+1); } /* lower left */ if ( option & U8G_DRAW_LOWER_LEFT ) { u8g_DrawVLine(u8g, x0-x, y0, y+1); } }
void Display::DrawWaterIcon() { /* * v 0.1 * / unsigned char i, j, x; for (j = 0; j <= 6; j+=3) { x = 0; for (i = 0; i <= 10; i+=2) { u8g_DrawLine(&u8g, WATERICON_X + i, WATERICON_Y + j + (x == 1), WATERICON_X + i + 1 , WATERICON_Y + j + (x == 0)); x = !x; } }*/ /* * v 0.2 */ unsigned char i, x = 0; u8g_DrawHLine(&u8g,WATERICON_X + 1 ,WATERICON_Y + 8 ,12); u8g_DrawVLine(&u8g,WATERICON_X ,WATERICON_Y ,8); u8g_DrawVLine(&u8g,WATERICON_X + 13,WATERICON_Y ,8); for (i = 1; i <= 11; i+=2) { u8g_DrawLine(&u8g, WATERICON_X + i, WATERICON_Y + 1 + (x == 1), WATERICON_X + i + 1 , WATERICON_Y + 1 + (x == 0)); x = !x; } }
void Display::DrawFrostIcon() { u8g_DrawHLine(&u8g,FROSTICON_X + 1 ,FROSTICON_Y + 8 ,6); u8g_DrawVLine(&u8g,FROSTICON_X ,FROSTICON_Y ,8); u8g_DrawVLine(&u8g,FROSTICON_X + 7 ,FROSTICON_Y ,8); u8g_DrawHLine(&u8g,FROSTICON_X + 4 ,FROSTICON_Y + 4 ,10); u8g_DrawLine(&u8g, FROSTICON_X + 11,FROSTICON_Y + 2 , FROSTICON_X + 13, FROSTICON_Y + 4); u8g_DrawLine(&u8g, FROSTICON_X + 13,FROSTICON_Y + 4 , FROSTICON_X + 11, FROSTICON_Y + 6); }
void dog_ClrVLine(uint8_t x, uint8_t y1, uint8_t y2) { y1 = dog_height_minus_one - y1; y2 = dog_height_minus_one - y2; u8g_SetColorIndex(&u8g_dogm128_obj, 0); u8g_DrawVLine(&u8g_dogm128_obj, x, y2, y1-y2+1); }
void draw_logo(uint8_t d) { u8g_SetFont(&u8g, u8g_font_gdr25r); u8g_DrawStr(&u8g, 0+d, 30+d, "U"); u8g_SetFont(&u8g, u8g_font_gdr30n); u8g_DrawStr90(&u8g, 23+d,10+d,"8"); u8g_SetFont(&u8g, u8g_font_gdr25r); u8g_DrawStr(&u8g, 53+d,30+d,"g"); u8g_DrawHLine(&u8g, 2+d, 35+d, 47); u8g_DrawVLine(&u8g, 45+d, 32+d, 12); }
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.drawVLine( self, x, y, width ) static int lu8g_drawVLine( lua_State *L ) { lu8g_userdata_t *lud; if ((lud = get_lud( L )) == NULL) return 0; u8g_uint_t args[3]; lu8g_get_int_args( L, 2, 3, args ); u8g_DrawVLine( LU8G, args[0], args[1], args[2] ); return 0; }
void Display::DrawMainScreen() { DrawFrostIcon(); DrawWaterIcon(); u8g_SetFont(&u8g, u8g_font_5x8); u8g_DrawStr(&u8g, 0, 36, "set"); u8g_SetFont(&u8g, u8g_font_7x13); for (int i = 0; i < 3; i++) { u8g_DrawStr(&u8g, 20, ((i+1)*12), temp[i]); } if (strlen(errorText) > 0) { u8g_DrawStr(&u8g, 0, 48, errorText); } else if (heatingState) u8g_DrawStr(&u8g, 0, 48, "Heating"); u8g_DrawStr(&u8g, 0, 64, statusBar); u8g_DrawVLine(&u8g,64,0 ,52); u8g_DrawHLine(&u8g,0 ,51,64); if (radioState) { if (radioStereo) { u8g_SetFont(&u8g, u8g_font_5x8); u8g_DrawStr(&u8g, 108, 8, "st"); u8g_SetFont(&u8g, u8g_font_7x13); } u8g_DrawStr(&u8g, 73, 26, radioChannel); DrawSignalStrength(); } if (audioState) { u8g_DrawStr(&u8g, 81, 38, "Source:"); u8g_DrawStr(&u8g, 66, 50, audioSource); } }
uint8_t m2_gh_u8g_base(m2_gfx_arg_p arg) { /* Do a safety check here: Abort if m2_SetU8g has not been called */ if ( m2_u8g_dev_variables.m2_u8g == NULL ) return 0; /* Proceed with normal message processing */ switch(arg->msg) { case M2_GFX_MSG_INIT: break; case M2_GFX_MSG_START: /* check for proper setup */ break; case M2_GFX_MSG_END: break; case M2_GFX_MSG_DRAW_HLINE: u8g_DrawHLine(m2_u8g_dev_variables.m2_u8g, arg->x, m2_u8g_dev_variables.m2_u8g_height_minus_one - arg->y, arg->w); break; case M2_GFX_MSG_DRAW_VLINE: u8g_DrawVLine(m2_u8g_dev_variables.m2_u8g, arg->x, m2_u8g_dev_variables.m2_u8g_height_minus_one - arg->y, arg->h); break; case M2_GFX_MSG_DRAW_BOX: m2_u8g_draw_box(arg->x, arg->y, arg->w, arg->h); break; case M2_GFX_MSG_DRAW_TEXT: { u8g_uint_t x = arg->x; u8g_uint_t y; u8g_SetColorIndex(m2_u8g_dev_variables.m2_u8g, m2_u8g_dev_variables.m2_u8g_current_text_color); u8g_SetFont(m2_u8g_dev_variables.m2_u8g, m2_u8g_get_font(arg->font)); u8g_SetFontPosBottom(m2_u8g_dev_variables.m2_u8g); if ( (arg->font & 8) != 0 ) { if ( arg->w != 0 ) { x = arg->w; x -= u8g_GetStrWidth(m2_u8g_dev_variables.m2_u8g, arg->s); x >>= 1; x += arg->x; } } y = m2_u8g_dev_variables.m2_u8g_height_minus_one; y -= arg->y; y++; /* 13 Jan 2013: Issue 95, problem 2 */ x -= u8g_GetStrX(m2_u8g_dev_variables.m2_u8g, arg->s); //x += m2_gh_u8g_additional_text_border_x_size; u8g_DrawStr(m2_u8g_dev_variables.m2_u8g, x, y, arg->s); // printf("DRAW_TEXT: x=%d y=%d s=%s\n", x, y, arg->s); } break; case M2_GFX_MSG_DRAW_TEXT_P: { u8g_uint_t x = arg->x; u8g_uint_t y; u8g_SetColorIndex(m2_u8g_dev_variables.m2_u8g, m2_u8g_dev_variables.m2_u8g_current_text_color); u8g_SetFont(m2_u8g_dev_variables.m2_u8g, m2_u8g_get_font(arg->font)); u8g_SetFontPosBottom(m2_u8g_dev_variables.m2_u8g); if ( (arg->font & 8) != 0 ) { if ( arg->w != 0 ) { x = arg->w; x -= u8g_GetStrWidthP(m2_u8g_dev_variables.m2_u8g, (const u8g_pgm_uint8_t *)arg->s); x >>= 1; x += arg->x; } } y = m2_u8g_dev_variables.m2_u8g_height_minus_one; y -= arg->y; x -= u8g_GetStrXP(m2_u8g_dev_variables.m2_u8g, (const u8g_pgm_uint8_t *)arg->s); //x += m2_gh_u8g_additional_text_border_x_size; y++; /* 13 Jan 2013: Issue 95, problem 2 */ u8g_DrawStrP(m2_u8g_dev_variables.m2_u8g, x, y, (const u8g_pgm_uint8_t *)arg->s); }
void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) { if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) return; int f = 1 - rad; int ddF_x = 1; int ddF_y = -2*rad; uint8_t x = 0; uint8_t y = rad; // Draw vertical diameter at the horiz. center // u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); if (option == U8G_CIRC_UPPER_LEFT || option == U8G_CIRC_UPPER_RIGHT) { u8g_DrawVLine(u8g, x0, y0 - rad, rad+1); } else if (option == U8G_CIRC_LOWER_LEFT || option == U8G_CIRC_LOWER_RIGHT) { u8g_DrawVLine(u8g, x0, y0, rad+1); } else { u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); } while( x < y ) { if(f >= 0) { y--; ddF_y += 2; f += ddF_y; } x++; ddF_x += 2; f += ddF_x; //Draw vertical lines from one point to another switch (option) { case U8G_CIRC_UPPER_RIGHT: u8g_DrawVLine(u8g, x0+x, y0-y, y+1); u8g_DrawVLine(u8g, x0+y, y0-x, x+1); break; case U8G_CIRC_UPPER_LEFT: u8g_DrawVLine(u8g, x0-x, y0-y, y+1); u8g_DrawVLine(u8g, x0-y, y0-x, x+1); break; case U8G_CIRC_LOWER_RIGHT: u8g_DrawVLine(u8g, x0+x, y0, y+1); u8g_DrawVLine(u8g, x0+y, y0, x+1); break; case U8G_CIRC_LOWER_LEFT: u8g_DrawVLine(u8g, x0-x, y0, y+1); u8g_DrawVLine(u8g, x0-y, y0, x+1); break; case U8G_CIRC_ALL: u8g_DrawVLine(u8g, x0+x, y0-y, 2*y+1); u8g_DrawVLine(u8g, x0-x, y0-y, 2*y+1); u8g_DrawVLine(u8g, x0+y, y0-x, 2*x+1); u8g_DrawVLine(u8g, x0-y, y0-x, 2*x+1); break; } } }