Skip to content

Commit 93af0b5

Browse files
committed
fix WEIGHT_HX711,GPSRaw,BPS_QMP6988,RTC_BM8563,PDM_SPM1423 compile issues
1 parent 7ebd4c6 commit 93af0b5

File tree

11 files changed

+915
-182
lines changed

11 files changed

+915
-182
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
#include "TFTTerminal.h"
2+
3+
TFTTerminal::TFTTerminal(TFT_eSprite *dis_buff_ptr) {
4+
_dis_buff_ptr = dis_buff_ptr;
5+
memset(discharbuff, 0, 55 * 60);
6+
}
7+
8+
TFTTerminal::~TFTTerminal() {
9+
}
10+
11+
void TFTTerminal::setcolor(uint16_t color, uint16_t bk_color) {
12+
_color = color;
13+
_bkcolor = bk_color;
14+
}
15+
16+
void TFTTerminal::setGeometry(uint16_t x, uint16_t y, uint16_t w, uint16_t h) {
17+
_win_x_pos = x;
18+
_win_y_pos = y;
19+
_win_w = w;
20+
_win_h = h;
21+
22+
_line_x_limit = _win_w / _font_x_size;
23+
_line_y_limit = _win_h / _font_y_size;
24+
}
25+
26+
void TFTTerminal::setFontsize(uint8_t size) {
27+
size = (size == 0) ? 1 : size;
28+
_font_x_size = 5 * size;
29+
_font_y_size = 6 * size;
30+
_fontSize = size;
31+
32+
_line_x_limit = _win_w / _font_x_size;
33+
_line_y_limit = _win_h / _font_y_size;
34+
}
35+
36+
size_t TFTTerminal::write(uint8_t chardata) {
37+
bool flush_page_flag = false;
38+
uint8_t dis_y_pos = 0;
39+
40+
if ((chardata == '\r') || (chardata == '\n')) {
41+
xpos = 0;
42+
ypos++;
43+
ypos = ypos % 60;
44+
memset(discharbuff[ypos % 60], 0, 55);
45+
return 1;
46+
} else if (xpos >= _line_x_limit) {
47+
xpos = 0;
48+
ypos++;
49+
ypos = ypos % 60;
50+
memset(discharbuff[ypos % 60], 0, 55);
51+
}
52+
53+
discharbuff[ypos][xpos] = chardata;
54+
xpos++;
55+
56+
if ((dispos <= ypos) && ((ypos - dispos) > _line_y_limit)) {
57+
dispos = ypos - _line_y_limit;
58+
flush_page_flag = true;
59+
} else if ((dispos <= ypos) && ((ypos - dispos) <= _line_y_limit)) {
60+
dis_y_pos = ypos - dispos;
61+
flush_page_flag = false;
62+
} else if ((dispos > ypos) && ((60 - (dispos - ypos)) > _line_y_limit)) {
63+
dispos = 60 - (_line_y_limit - ypos);
64+
flush_page_flag = true;
65+
} else if ((dispos > ypos) && ((60 - (dispos - ypos)) > _line_y_limit)) {
66+
dis_y_pos = 60 - (dispos - ypos);
67+
flush_page_flag = false;
68+
}
69+
70+
dispos = dispos % 60;
71+
72+
_dis_buff_ptr->setTextColor(_color);
73+
_dis_buff_ptr->setTextSize(_fontSize);
74+
75+
if (flush_page_flag) {
76+
_dis_buff_ptr->fillSprite(_bkcolor);
77+
78+
for (size_t i = 0; i < _line_y_limit; i++) {
79+
_dis_buff_ptr->drawString((char *)discharbuff[(dispos + i) % 60], 0,
80+
i * _font_y_size);
81+
}
82+
} else {
83+
_dis_buff_ptr->drawChar(chardata, (xpos - 1) * _font_x_size,
84+
dis_y_pos * _font_y_size);
85+
}
86+
_dis_buff_ptr->pushSprite(_win_x_pos, _win_y_pos);
87+
88+
return 1;
89+
}
90+
91+
size_t TFTTerminal::write(const uint8_t *buffer, size_t size) {
92+
while ((size != 0) && (*buffer != '\0')) {
93+
if ((*buffer == '\r') || (*buffer == '\n')) {
94+
xpos = 0;
95+
ypos++;
96+
ypos = ypos % 60;
97+
memset(discharbuff[ypos % 60], 0, 55);
98+
buffer++;
99+
size--;
100+
continue;
101+
} else if (xpos >= _line_x_limit) {
102+
xpos = 0;
103+
ypos++;
104+
ypos = ypos % 60;
105+
memset(discharbuff[ypos % 60], 0, 55);
106+
}
107+
discharbuff[ypos][xpos] = *buffer;
108+
xpos++;
109+
buffer++;
110+
size--;
111+
}
112+
113+
if ((dispos <= ypos) && ((ypos - dispos) > _line_y_limit)) {
114+
dispos = ypos - _line_y_limit;
115+
} else if ((dispos > ypos) && ((60 - (dispos - ypos)) > _line_y_limit)) {
116+
dispos = 60 - (_line_y_limit - ypos);
117+
}
118+
119+
dispos = dispos % 60;
120+
121+
_dis_buff_ptr->setTextColor(_color);
122+
_dis_buff_ptr->setTextSize(_fontSize);
123+
_dis_buff_ptr->fillSprite(_bkcolor);
124+
//_dis_buff_ptr->fillRect(_win_x_pos, _win_y_pos, _win_w, _win_h, _bkcolor);
125+
for (size_t i = 0; i < _line_y_limit; i++) {
126+
_dis_buff_ptr->drawString((char *)discharbuff[(dispos + i) % 60], 0,
127+
i * _font_y_size);
128+
}
129+
_dis_buff_ptr->pushSprite(_win_x_pos, _win_y_pos);
130+
return 1;
131+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#ifndef _TFTTERMINAL_H_
2+
#define _TFTTERMINAL_H_
3+
4+
#include <M5Stack.h>
5+
#include <Print.h>
6+
7+
class TFTTerminal : public Print {
8+
private:
9+
TFT_eSprite *disptr;
10+
char discharbuff[60][55];
11+
uint32_t xpos = 0, ypos = 0, dispos = 0;
12+
TFT_eSprite *_dis_buff_ptr = NULL;
13+
uint16_t _bkcolor = TFT_BLACK;
14+
uint16_t _color = TFT_GREEN;
15+
16+
uint16_t _win_x_pos = 0, _win_y_pos = 0, _win_w = 320, _win_h = 240;
17+
uint16_t _font_x_size = 6, _font_y_size = 8;
18+
uint8_t _fontSize = 0;
19+
uint16_t _line_x_limit = 53, _line_y_limit = 30;
20+
21+
public:
22+
TFTTerminal(TFT_eSprite *dis_buff_ptr);
23+
~TFTTerminal();
24+
25+
void setcolor(uint16_t color, uint16_t bk_color);
26+
void setGeometry(uint16_t x, uint16_t y, uint16_t w, uint16_t h);
27+
void setFontsize(uint8_t size);
28+
29+
size_t write(uint8_t);
30+
size_t write(const uint8_t *buffer, size_t size);
31+
};
32+
33+
#endif

examples/Unit/BPS_QMP6988/BPS_QMP6988.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ the display screen 请连接端口A(22、21),读取大气压强并在显示屏
1414
*/
1515
#include <M5Stack.h>
1616

17-
#include "UNIT_ENV.h"
17+
#include "M5_ENV.h"
1818
#include "Wire.h" //The BPS uses I2C comunication.
1919

2020
QMP6988 qmp6988;

examples/Unit/CAN/CAN.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ https://github.com/miwagner/ESP32-Arduino-CAN
1919

2020
#include <CAN_config.h>
2121
#include <ESP32CAN.h>
22-
#include <M5GFX.h>
2322
#include <M5Stack.h>
23+
#include <M5GFX.h>
2424

2525
M5GFX display;
2626
M5Canvas canvas(&display);

examples/Unit/GPS_AT6558/GPSRaw/GPSRaw.ino

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,29 @@
33
for debugging and functional verification.
44
*/
55
#include <M5Stack.h>
6+
#include "M5GFX.h"
67

78
HardwareSerial GPSRaw(2);
89

10+
M5GFX display;
11+
M5Canvas canvas(&display);
12+
913
void setup() {
1014
M5.begin();
1115
M5.Power.begin();
1216
GPSRaw.begin(9600);
1317

14-
Serial.println("hello");
15-
termInit();
16-
M5.Lcd.setTextFont(4);
17-
M5.Lcd.setCursor(50, 100, 4);
18-
M5.Lcd.println(("GPS Raw Example"));
18+
display.begin();
19+
20+
canvas.setColorDepth(1); // mono color
21+
canvas.setFont(&fonts::efontCN_14);
22+
canvas.createSprite(display.width(), display.height());
23+
canvas.setTextSize(2);
24+
canvas.setPaletteColor(1, GREEN);
25+
canvas.setTextScroll(true);
26+
27+
canvas.println("GPS Raw Example");
28+
canvas.pushSprite(0, 0);
1929
}
2030

2131
void loop() {
@@ -28,6 +38,7 @@ void loop() {
2838
if (GPSRaw.available()) {
2939
int ch = GPSRaw.read();
3040
Serial.write(ch);
31-
termPutchar(ch);
41+
canvas.print(ch);
42+
canvas.pushSprite(0, 0);
3243
}
3344
}

examples/Unit/GPS_AT6558/GPSRaw/TFT_Terminal.ino

Lines changed: 0 additions & 169 deletions
This file was deleted.

0 commit comments

Comments
 (0)