Skip to content

Commit 74b725a

Browse files
committed
Fixes examples
1 parent 96443c5 commit 74b725a

2 files changed

Lines changed: 167 additions & 12 deletions

File tree

examples/UnitUnified/PlotToSerial/main/PlotToSerial.cpp

Lines changed: 79 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,82 @@
3737
namespace {
3838
auto& lcd = M5.Display;
3939
m5::unit::UnitUnified Units;
40+
41+
const char* special_key_name(const char ch)
42+
{
43+
switch (ch) {
44+
case '\b':
45+
return "BS";
46+
case '\t':
47+
return "TAB";
48+
case '\n':
49+
return "LF";
50+
case '\r':
51+
return "CR";
52+
case 0x1B:
53+
return "ESC";
54+
case 0x7F:
55+
return "DEL";
56+
default:
57+
break;
58+
}
59+
#if defined(USING_UNIT_CARDKB)
60+
using namespace m5::unit;
61+
switch (ch) {
62+
case UnitCardKB::SCHAR_LEFT:
63+
return "LEFT";
64+
case UnitCardKB::SCHAR_UP:
65+
return "UP";
66+
case UnitCardKB::SCHAR_DOWN:
67+
return "DOWN";
68+
case UnitCardKB::SCHAR_RIGHT:
69+
return "RIGHT";
70+
default:
71+
break;
72+
}
73+
#elif defined(USING_UNIT_CARDKB2)
74+
using namespace m5::unit::cardkb2;
75+
switch (ch) {
76+
case SCHAR_LEFT:
77+
return "LEFT";
78+
case SCHAR_UP:
79+
return "UP";
80+
case SCHAR_DOWN:
81+
return "DOWN";
82+
case SCHAR_RIGHT:
83+
return "RIGHT";
84+
default:
85+
break;
86+
}
87+
#elif defined(USING_UNIT_FACES_QWERTY)
88+
using namespace m5::unit;
89+
switch (ch) {
90+
case UnitFacesQWERTY::SCHAR_UP:
91+
return "UP";
92+
case UnitFacesQWERTY::SCHAR_INS:
93+
return "INS";
94+
case UnitFacesQWERTY::SCHAR_HOME:
95+
return "HOME";
96+
case UnitFacesQWERTY::SCHAR_END:
97+
return "END";
98+
case UnitFacesQWERTY::SCHAR_PAGE_UP:
99+
return "PGUP";
100+
case UnitFacesQWERTY::SCHAR_PAGE_DOWN:
101+
return "PGDN";
102+
case UnitFacesQWERTY::SCHAR_LEFT:
103+
return "LEFT";
104+
case UnitFacesQWERTY::SCHAR_DOWN:
105+
return "DOWN";
106+
case UnitFacesQWERTY::SCHAR_RIGHT:
107+
return "RIGHT";
108+
case UnitFacesQWERTY::SCHAR_SPEAKER:
109+
return "SPK";
110+
default:
111+
break;
112+
}
113+
#endif
114+
return nullptr;
115+
}
40116
#if defined(USING_UNIT_CARDKB)
41117
#pragma message "Using UnitCardKB (I2C)"
42118
m5::unit::UnitCardKB unit;
@@ -221,8 +297,6 @@ using namespace m5::unit::keyboard;
221297

222298
void setup()
223299
{
224-
delay(1500);
225-
226300
M5.begin();
227301
M5.setTouchButtonHeightByRatio(100);
228302

@@ -270,8 +344,9 @@ void loop()
270344
// Common: get input characters
271345
if (unit.updated()) {
272346
while (unit.available()) {
273-
char ch = unit.getchar();
274-
M5.Log.printf("Char:[%02X %c]\n", ch, std::isprint(ch) ? ch : ' ');
347+
char ch = unit.getchar();
348+
auto sname = special_key_name(ch);
349+
M5.Log.printf("Char:[%02X %s]\n", (uint8_t)ch, sname ? sname : m5::utility::formatString("%c", ch).c_str());
275350
M5.Speaker.tone(1000, 20);
276351
unit.discard();
277352
}

examples/UnitUnified/SimpleDisplay/main/SimpleDisplay.cpp

Lines changed: 88 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,82 @@
3939
namespace {
4040
auto& lcd = M5.Display;
4141
LGFX_Sprite canvas(&lcd);
42+
43+
const char* special_key_name(const char ch)
44+
{
45+
switch (ch) {
46+
case '\b':
47+
return "BS";
48+
case '\t':
49+
return "TAB";
50+
case '\n':
51+
return "LF";
52+
case '\r':
53+
return "CR";
54+
case 0x1B:
55+
return "ESC";
56+
case 0x7F:
57+
return "DEL";
58+
default:
59+
break;
60+
}
61+
#if defined(USING_UNIT_CARDKB)
62+
using namespace m5::unit;
63+
switch (ch) {
64+
case UnitCardKB::SCHAR_LEFT:
65+
return "LEFT";
66+
case UnitCardKB::SCHAR_UP:
67+
return "UP";
68+
case UnitCardKB::SCHAR_DOWN:
69+
return "DOWN";
70+
case UnitCardKB::SCHAR_RIGHT:
71+
return "RIGHT";
72+
default:
73+
break;
74+
}
75+
#elif defined(USING_UNIT_CARDKB2)
76+
using namespace m5::unit::cardkb2;
77+
switch (ch) {
78+
case SCHAR_LEFT:
79+
return "LEFT";
80+
case SCHAR_UP:
81+
return "UP";
82+
case SCHAR_DOWN:
83+
return "DOWN";
84+
case SCHAR_RIGHT:
85+
return "RIGHT";
86+
default:
87+
break;
88+
}
89+
#elif defined(USING_UNIT_FACES_QWERTY)
90+
using namespace m5::unit;
91+
switch (ch) {
92+
case UnitFacesQWERTY::SCHAR_UP:
93+
return "UP";
94+
case UnitFacesQWERTY::SCHAR_INS:
95+
return "INS";
96+
case UnitFacesQWERTY::SCHAR_HOME:
97+
return "HOME";
98+
case UnitFacesQWERTY::SCHAR_END:
99+
return "END";
100+
case UnitFacesQWERTY::SCHAR_PAGE_UP:
101+
return "PGUP";
102+
case UnitFacesQWERTY::SCHAR_PAGE_DOWN:
103+
return "PGDN";
104+
case UnitFacesQWERTY::SCHAR_LEFT:
105+
return "LEFT";
106+
case UnitFacesQWERTY::SCHAR_DOWN:
107+
return "DOWN";
108+
case UnitFacesQWERTY::SCHAR_RIGHT:
109+
return "RIGHT";
110+
case UnitFacesQWERTY::SCHAR_SPEAKER:
111+
return "SPK";
112+
default:
113+
break;
114+
}
115+
#endif
116+
return nullptr;
117+
}
42118
m5::unit::UnitUnified Units;
43119
#if defined(USING_UNIT_CARDKB)
44120
#pragma message "Using UnitCardKB (I2C)"
@@ -208,8 +284,9 @@ void loop_cardkb(bool& dirty, char& ch)
208284
// Gets the input characters
209285
if (unit.updated()) {
210286
while (unit.available()) {
211-
ch = unit.getchar();
212-
M5.Log.printf("Char:[0x%02X=%d %c]\n", ch, ch, std::isprint(ch) ? ch : ' ');
287+
ch = unit.getchar();
288+
auto sname = special_key_name(ch);
289+
M5.Log.printf("Char:[%02X %s]\n", (uint8_t)ch, sname ? sname : m5::utility::formatString("%c", ch).c_str());
213290
if (std::isprint(ch)) {
214291
str += ch;
215292
} else if (ch == '\r' || ch == '\n') {
@@ -313,8 +390,9 @@ void loop_cardkb2_i2c(bool& dirty, char& ch)
313390
// Gets the input characters
314391
if (unit.updated()) {
315392
while (unit.available()) {
316-
ch = unit.getchar();
317-
M5.Log.printf("Char:[0x%02X=%d %c]\n", ch, ch, std::isprint(ch) ? ch : ' ');
393+
ch = unit.getchar();
394+
auto sname = special_key_name(ch);
395+
M5.Log.printf("Char:[%02X %s]\n", (uint8_t)ch, sname ? sname : m5::utility::formatString("%c", ch).c_str());
318396
if (std::isprint(ch)) {
319397
str += ch;
320398
} else if (ch == '\r' || ch == '\n') {
@@ -337,8 +415,9 @@ void loop_cardkb2_uart(bool& dirty, char& ch)
337415
// Gets the input characters
338416
if (unit.updated()) {
339417
while (unit.available()) {
340-
ch = unit.getchar();
341-
M5.Log.printf("Char:[0x%02X=%d %c]\n", ch, ch, std::isprint(ch) ? ch : ' ');
418+
ch = unit.getchar();
419+
auto sname = special_key_name(ch);
420+
M5.Log.printf("Char:[%02X %s]\n", (uint8_t)ch, sname ? sname : m5::utility::formatString("%c", ch).c_str());
342421
if (std::isprint(ch)) {
343422
str += ch;
344423
} else if (ch == '\r' || ch == '\n') {
@@ -432,8 +511,9 @@ void loop_faces(bool& dirty, char& ch)
432511
// Gets the input characters
433512
if (unit.updated()) {
434513
while (unit.available()) {
435-
ch = unit.getchar();
436-
M5.Log.printf("Char:[0x%02X=%d %c]\n", ch, ch, std::isprint(ch) ? ch : ' ');
514+
ch = unit.getchar();
515+
auto sname = special_key_name(ch);
516+
M5.Log.printf("Char:[%02X %s]\n", (uint8_t)ch, sname ? sname : m5::utility::formatString("%c", ch).c_str());
437517
if (std::isprint(ch)) {
438518
str += ch;
439519
} else if (ch == '\r' || ch == '\n') {

0 commit comments

Comments
 (0)