예제 #1
0
ICACHE_FLASH_ATTR
static void draw_upgrade(DrawingState *state) {
    u8g_SetFont(&(state->u8g), u8g_font_6x10);
    u8g_SetFontPosCenter(&(state->u8g));
    u8g_DrawStr(&(state->u8g), 0, 8, "upgrading fw...");
    icon_draw_center(&(state->u8g), 128 / 2, 16 + (48 / 2), icon_update);
}
예제 #2
0
파일: u8g.c 프로젝트: rudg/nodemcu-firmware
// Lua: u8g.setFontPosCenter( self )
static int lu8g_setFontPosCenter( lua_State *L )
{
    lu8g_userdata_t *lud;

    if ((lud = get_lud( L )) == NULL)
        return 0;

    u8g_SetFontPosCenter( LU8G );

    return 0;
}
예제 #3
0
파일: main.c 프로젝트: 88kacper8/u8glib
int main(void)
{
  u8g_t u8g;
  
  u8g_Init(&u8g, &u8g_dev_sdl_1bit_h);
  u8g_FirstPage(&u8g);
  do
  {
    u8g_SetColorIndex(&u8g, 1);
    u8g_DrawPixel(&u8g,0,0);
    u8g_DrawPixel(&u8g,0,1);
    u8g_SetFont(&u8g, u8g_font_unifont);
    //u8g_SetFont(&u8g, u8g_font_10x20);
    //u8g_SetFont(&u8g, u8g_font_gdb17);
    u8g_SetFontRefHeightText(&u8g);
    //u8g_SetRefHeightAll(&u8g);
    
    //u8g_SetFontPosBaseline(&u8g);
    //u8g_SetFontPosCenter(&u8g);
    
    u8g_SetFontPosTop(&u8g);
    glyph(&u8g, 5,25, 'g');

    u8g_SetFontPosCenter(&u8g);
    glyph(&u8g, 5+25,25, 'g');
    
    u8g_SetFontPosBaseline(&u8g);
    glyph(&u8g, 5+2*25,25, 'g');

    u8g_SetFontPosBottom(&u8g);
    glyph(&u8g, 5+3*25,25, 'g');
    
  }while( u8g_NextPage(&u8g) );
  
  while( u8g_sdl_get_key() < 0 )
    ;
  
  return 0;
}
예제 #4
0
ICACHE_FLASH_ATTR
static void draw_normal(DrawingState *state) {
    uint8_t buf[50];
    u8g_SetColorIndex(&(state->u8g), 1);

    drawingRefreshIcons(state);

    uint8_t iconWidth = 40;
    //current measured temperature
    u8g_SetFont(&(state->u8g), u8g_font_helvB18);
    u8g_SetFontPosTop(&(state->u8g));
    os_sprintf(buf, "%d", state->currentTemp / 100);
    uint8_t currentTempWidth = u8g_GetStrWidth(&(state->u8g), buf);
    uint8_t cWidth = u8g_GetStrWidth(&(state->u8g), "C");
    uint8_t strHeight = u8g_GetFontAscent(&(state->u8g));

    u8g_SetFont(&(state->u8g), u8g_font_helvR08);
    u8g_SetFontPosBaseline(&(state->u8g));
    os_sprintf(buf, "%02d", abs(state->currentTemp % 100));
    uint8_t webTempWidth = u8g_GetStrWidth(&(state->u8g), buf);
    u8g_DrawStr(&(state->u8g),
                iconWidth + (128 - iconWidth) / 2 - (currentTempWidth + cWidth + webTempWidth) / 2 + currentTempWidth,
                16 + strHeight, buf);

    u8g_SetFont(&(state->u8g), u8g_font_helvB18);
    u8g_SetFontPosTop(&(state->u8g));
    os_sprintf(buf, "%d", state->currentTemp / 100);
    u8g_DrawStr(&(state->u8g), iconWidth + (128 - iconWidth) / 2 - (currentTempWidth + cWidth + webTempWidth) / 2, 16,
                buf);
    u8g_DrawStr(&(state->u8g),
                iconWidth + (128 - iconWidth) / 2 - (currentTempWidth + cWidth + webTempWidth) / 2 + currentTempWidth +
                webTempWidth, 16, "C");

    //web text
    if (state->weather.code != 255) {
        u8g_SetFont(&(state->u8g), u8g_font_6x10);
        u8g_SetFontPosBottom(&(state->u8g));
        os_sprintf(buf, "%s", state->weather.text);
        currentTempWidth = u8g_GetStrWidth(&(state->u8g), buf);
        strHeight = u8g_GetFontBBXHeight(&(state->u8g));
        u8g_DrawStr(&(state->u8g), iconWidth + (128 - iconWidth) / 2 - currentTempWidth / 2, 64, buf);
    }

    //web temperature
    u8g_SetFont(&(state->u8g), u8g_font_6x10);
    u8g_SetFontPosBottom(&(state->u8g));
    os_sprintf(buf, "%dC", state->weather.temp);
    uint8_t outsideTempWidth = u8g_GetStrWidth(&(state->u8g), buf);
    u8g_DrawStr(&(state->u8g), iconWidth + (128 - iconWidth) / 2 - outsideTempWidth / 2, 64 - strHeight, buf);

    u8g_SetFont(&(state->u8g), u8g_font_6x10);
    u8g_SetFontPosCenter(&(state->u8g));

    if (state->temperatureMode == MANUAL) {
        os_sprintf(buf, "Manual: %d.%02dC", state->manualTemp / 100, abs(state->manualTemp % 100));
    } else if (state->temperatureMode == AUTOMATIC) {
        if (state->automaticTempCurrentState == NULL) {
            os_sprintf(buf, "Auto");
        } else {
            os_sprintf(buf, "A:%d.%02dC, %d:%02d", state->automaticTempCurrentState->temp / 100,
                       abs(state->automaticTempCurrentState->temp % 100),
                       state->automaticTempCurrentState->time / 60, state->automaticTempCurrentState->time % 60);
        }
    }

    u8g_DrawStr(&(state->u8g), 0, 8, buf);

}