diff --git a/README.md b/README.md index a21378c4..46066c9f 100644 --- a/README.md +++ b/README.md @@ -360,8 +360,27 @@ cu:send("hello") ``` ####Operate a display with u8glib -u8glib is a graphics library with support for many different displays. -The integration in nodemcu is developed for SSD1306 based display attached via the I2C port. Further display types and SPI connectivity will be added in the future. +u8glib is a graphics library with support for many different displays. The nodemcu firmware supports a subset of these. +Both I2C and SPI: +* sh1106_128x64 +* ssd1306 - 128x64 and 64x48 variants +* ssd1309_128x64 +* ssd1327_96x96_gr +* uc1611 - dogm240 and dogxl240 variants + +SPI only: +* ld7032_60x32 +* pcd8544_84x48 +* pcf8812_96x65 +* ssd1322_nhd31oled - bw and gr variants +* ssd1325_nhd27oled - bw and gr variants +* ssd1351_128x128 - gh and hicolor variants +* st7565_64128n - variants 64128n, dogm128/132, lm6059/lm6063, c12832/c12864 +* uc1601_c128032 +* uc1608 - 240x128 and 240x64 variants +* uc1610_dogxl160 - bw and gr variants +* uc1611 - dogm240 and dogxl240 variants +* uc1701 - dogs102 and mini12864 variants U8glib v1.18.1 diff --git a/app/modules/u8g.c b/app/modules/u8g.c index 24d2062b..7747a9de 100644 --- a/app/modules/u8g.c +++ b/app/modules/u8g.c @@ -65,6 +65,8 @@ static int lu8g_setFont( lua_State *L ) u8g_fntpgm_uint8_t *font = (u8g_fntpgm_uint8_t *)lua_touserdata( L, 2 ); if (font != NULL) u8g_SetFont( LU8G, font ); + else + luaL_argerror(L, 2, "font data expected"); return 0; } @@ -301,32 +303,24 @@ static int lu8g_generic_drawStr( lua_State *L, uint8_t rot ) // Lua: pix_len = u8g.drawStr( self, x, y, string ) static int lu8g_drawStr( lua_State *L ) { - lu8g_userdata_t *lud; - return lu8g_generic_drawStr( L, 0 ); } // Lua: pix_len = u8g.drawStr90( self, x, y, string ) static int lu8g_drawStr90( lua_State *L ) { - lu8g_userdata_t *lud; - return lu8g_generic_drawStr( L, 1 ); } // Lua: pix_len = u8g.drawStr180( self, x, y, string ) static int lu8g_drawStr180( lua_State *L ) { - lu8g_userdata_t *lud; - return lu8g_generic_drawStr( L, 2 ); } // Lua: pix_len = u8g.drawStr270( self, x, y, string ) static int lu8g_drawStr270( lua_State *L ) { - lu8g_userdata_t *lud; - return lu8g_generic_drawStr( L, 3 ); } @@ -1147,13 +1141,14 @@ LUALIB_API int luaopen_u8g( lua_State *L ) // Options for circle/ ellipse drawing MOD_REG_NUMBER( L, "DRAW_UPPER_RIGHT", U8G_DRAW_UPPER_RIGHT ); - MOD_REG_NUMBER( L, "DRAW_UPPER_LEFT", U8G_DRAW_UPPER_RIGHT ); - MOD_REG_NUMBER( L, "DRAW_LOWER_RIGHT", U8G_DRAW_UPPER_RIGHT ); - MOD_REG_NUMBER( L, "DRAW_LOWER_LEFT", U8G_DRAW_UPPER_RIGHT ); + MOD_REG_NUMBER( L, "DRAW_UPPER_LEFT", U8G_DRAW_UPPER_LEFT ); + MOD_REG_NUMBER( L, "DRAW_LOWER_RIGHT", U8G_DRAW_LOWER_RIGHT ); + MOD_REG_NUMBER( L, "DRAW_LOWER_LEFT", U8G_DRAW_LOWER_LEFT ); + MOD_REG_NUMBER( L, "DRAW_ALL", U8G_DRAW_ALL ); // Display modes MOD_REG_NUMBER( L, "MODE_BW", U8G_MODE_BW ); - MOD_REG_NUMBER( L, "MODE_GRAY2BIT", U8G_MODE_BW ); + MOD_REG_NUMBER( L, "MODE_GRAY2BIT", U8G_MODE_GRAY2BIT ); // create metatable luaL_newmetatable(L, "u8g.display");