My Project
 All Classes Functions Variables Pages
U8G2.h
1 /*
2  * U8G2.h
3  *
4  * Created on: May 6, 2017
5  * Author: kolban
6  */
7 
8 #ifndef COMPONENTS_CPP_UTILS_U8G2_H_
9 #define COMPONENTS_CPP_UTILS_U8G2_H_
10 #include "sdkconfig.h"
11 #ifdef CONFIG_U8G2_PRESENT
12 #include <u8g2.h>
13 #include <driver/gpio.h>
14 #include <string>
15 
19 class U8G2 {
20 public:
21  U8G2(gpio_num_t sda, gpio_num_t scl, int address);
22  virtual ~U8G2();
23  void clearBuffer() {
24  u8g2_ClearBuffer(&m_u8g2);
25  }
26 
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);
29  }
30 
31  void drawBox(uint32_t x, uint32_t y, uint32_t w, uint32_t h) {
32  u8g2_DrawBox(&m_u8g2, x, y, w, h);
33  }
34 
35  void drawCircle(uint32_t x0, uint32_t y0, uint32_t rad, uint8_t opt) {
36  u8g2_DrawCircle(&m_u8g2, x0, y0, rad, opt);
37  }
38 
39  void drawDisc(uint32_t x0, uint32_t y0, uint32_t rad, uint8_t opt) {
40  u8g2_DrawDisc(&m_u8g2, x0, y0, rad, opt);
41  }
42 
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);
45  }
46 
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);
49  }
50 
51  void drawFrame(uint32_t x, uint32_t y, uint32_t w, uint32_t h) {
52  u8g2_DrawFrame(&m_u8g2, x, y, w, h);
53  }
54 
55  void drawGlyph(uint32_t x, uint32_t y, uint16_t encoding) {
56  u8g2_DrawGlyph(&m_u8g2, x, y, encoding);
57  }
58 
59  void drawHLine(uint32_t x, uint32_t y, uint32_t w) {
60  u8g2_DrawHLine(&m_u8g2, x, y, w);
61  }
62  void drawLine(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1) {
63  u8g2_DrawLine(&m_u8g2, x0, y0, x1, y1);
64  }
65 
66  void drawPixel(uint32_t x, uint32_t y) {
67  u8g2_DrawPixel(&m_u8g2, x, y);
68  }
69 
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);
72  }
73 
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);
76  }
77 
78  uint32_t drawStr(uint32_t x, uint32_t y, std::string s) {
79  return u8g2_DrawStr(&m_u8g2, x, y, s.c_str());
80  }
81 
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);
84  }
85 
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());
88  }
89 
90  void drawVLine(uint32_t x, uint32_t y, uint32_t h) {
91  u8g2_DrawVLine(&m_u8g2, x, y, h);
92  }
93 
94  int8_t getAscent() {
95  return u8g2_GetAscent(&m_u8g2);
96  }
97 
98  int8_t getDescent() {
99  return u8g2_GetDescent(&m_u8g2);
100  }
101 
102  uint32_t getStrWidth(std::string s) {
103  return u8g2_GetStrWidth(&m_u8g2, s.c_str());
104  }
105 
106  void initDisplay() {
107  u8g2_InitDisplay(&m_u8g2);
108  }
109 
110  void sendBuffer() {
111  u8g2_SendBuffer(&m_u8g2);
112  }
113 
114  void setFont(const uint8_t* font) {
115  u8g2_SetFont(&m_u8g2, font);
116  }
117 
118  void setPowerSave(uint8_t is_enable) {
119  u8g2_SetPowerSave(&m_u8g2, is_enable); // wake up display
120  }
121 
122 private:
123  u8g2_t m_u8g2;
124 
125 };
126 
127 #endif // CONFIG_U8G2_PRESENT
128 #endif /* COMPONENTS_CPP_UTILS_U8G2_H_ */