8 #ifndef COMPONENTS_CPP_UTILS_U8G2_H_
9 #define COMPONENTS_CPP_UTILS_U8G2_H_
10 #include "sdkconfig.h"
11 #ifdef CONFIG_U8G2_PRESENT
13 #include <driver/gpio.h>
21 U8G2(gpio_num_t sda, gpio_num_t scl,
int address);
24 u8g2_ClearBuffer(&m_u8g2);
27 void drawBitmap(uint32_t x, uint32_t y, uint32_t cnt, uint32_t h,
const uint8_t* bitmap) {
28 u8g2_DrawBitmap(&m_u8g2, x, y, cnt, h, bitmap);
31 void drawBox(uint32_t x, uint32_t y, uint32_t w, uint32_t h) {
32 u8g2_DrawBox(&m_u8g2, x, y, w, h);
35 void drawCircle(uint32_t x0, uint32_t y0, uint32_t rad, uint8_t opt) {
36 u8g2_DrawCircle(&m_u8g2, x0, y0, rad, opt);
39 void drawDisc(uint32_t x0, uint32_t y0, uint32_t rad, uint8_t opt) {
40 u8g2_DrawDisc(&m_u8g2, x0, y0, rad, opt);
43 void drawEllipse(uint32_t x0, uint32_t y0, uint32_t rx, uint32_t ry, uint8_t opt) {
44 u8g2_DrawEllipse(&m_u8g2, x0, y0, rx, ry, opt);
47 void drawFilledEllipse(uint32_t x0, uint32_t y0, uint32_t rx, uint32_t ry, uint8_t opt) {
48 u8g2_DrawFilledEllipse(&m_u8g2, x0, y0, rx, ry, opt);
51 void drawFrame(uint32_t x, uint32_t y, uint32_t w, uint32_t h) {
52 u8g2_DrawFrame(&m_u8g2, x, y, w, h);
55 void drawGlyph(uint32_t x, uint32_t y, uint16_t encoding) {
56 u8g2_DrawGlyph(&m_u8g2, x, y, encoding);
59 void drawHLine(uint32_t x, uint32_t y, uint32_t w) {
60 u8g2_DrawHLine(&m_u8g2, x, y, w);
62 void drawLine(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1) {
63 u8g2_DrawLine(&m_u8g2, x0, y0, x1, y1);
66 void drawPixel(uint32_t x, uint32_t y) {
67 u8g2_DrawPixel(&m_u8g2, x, y);
70 void drawRBox(uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint32_t r) {
71 u8g2_DrawRBox(&m_u8g2, x, y, w, h, r);
74 void drawRFrame(uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint32_t r) {
75 u8g2_DrawRFrame(&m_u8g2, x, y, w, h, r);
78 uint32_t drawStr(uint32_t x, uint32_t y, std::string s) {
79 return u8g2_DrawStr(&m_u8g2, x, y, s.c_str());
82 void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2) {
83 u8g2_DrawTriangle(&m_u8g2, x0, y0, x1, y1, x2, y2);
86 u8g2_uint_t drawUTF8(uint32_t x, uint32_t y, std::string s) {
87 return u8g2_DrawUTF8(&m_u8g2, x, y, s.c_str());
90 void drawVLine(uint32_t x, uint32_t y, uint32_t h) {
91 u8g2_DrawVLine(&m_u8g2, x, y, h);
95 return u8g2_GetAscent(&m_u8g2);
99 return u8g2_GetDescent(&m_u8g2);
102 uint32_t getStrWidth(std::string s) {
103 return u8g2_GetStrWidth(&m_u8g2, s.c_str());
107 u8g2_InitDisplay(&m_u8g2);
111 u8g2_SendBuffer(&m_u8g2);
114 void setFont(
const uint8_t* font) {
115 u8g2_SetFont(&m_u8g2, font);
118 void setPowerSave(uint8_t is_enable) {
119 u8g2_SetPowerSave(&m_u8g2, is_enable);
127 #endif // CONFIG_U8G2_PRESENT