Skip to content

Commit 5bc7437

Browse files
committed
Merge branch 'master' of https://github.com/m5stack/M5Stack
2 parents 4d916bb + 1f18972 commit 5bc7437

File tree

4 files changed

+206
-66
lines changed

4 files changed

+206
-66
lines changed

examples/Games/FlappyBird/FlappyBird.ino

+14-33
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// By Ponticelli Domenico.
2+
// 12NOV2020 EEPROM Fix added, modified by Zontex
23
// https://github.com/pcelli85/M5Stack_FlappyBird_game
34

45
#include <M5Stack.h>
@@ -27,7 +28,8 @@
2728
// grass size
2829
#define GRASSH 4 // grass height (inside floor, starts at floor y)
2930

30-
int maxScore = 0;
31+
int address = 0;
32+
int maxScore = EEPROM.readInt(address);
3133
const int buttonPin = 2;
3234
// background
3335
const unsigned int BCKGRDCOL = M5.Lcd.color565(138,235,244);
@@ -92,10 +94,12 @@ static short tmpx, tmpy;
9294

9395
void setup() {
9496
// put your setup code here, to run once:
95-
M5.begin();
96-
M5.Power.begin();
97-
resetMaxScore();
98-
97+
M5.begin();
98+
M5.Power.begin();
99+
EEPROM.begin(1000);
100+
//resetMaxScore();
101+
Serial.println("last score:");
102+
Serial.println(EEPROM.readInt(address));
99103
}
100104

101105
void loop() {
@@ -323,11 +327,12 @@ void game_init() {
323327
// ---------------
324328
void game_over() {
325329
M5.Lcd.fillScreen(TFT_BLACK);
326-
EEPROM_Read(&maxScore,0);
330+
maxScore = EEPROM.readInt(address);
327331

328332
if(score>maxScore)
329333
{
330-
EEPROM_Write(&score,0);
334+
EEPROM.writeInt(address, score);
335+
EEPROM.commit();
331336
maxScore = score;
332337
M5.Lcd.setTextColor(TFT_RED);
333338
M5.Lcd.setTextSize(2);
@@ -360,31 +365,7 @@ void game_over() {
360365

361366
void resetMaxScore()
362367
{
363-
EEPROM_Write(&maxScore,0);
364-
}
365-
366-
367-
368-
void EEPROM_Write(int *num, int MemPos)
369-
{
370-
byte ByteArray[2];
371-
memcpy(ByteArray, num, 2);
372-
for(int x = 0; x < 2; x++)
373-
{
374-
EEPROM.write((MemPos * 2) + x, ByteArray[x]);
375-
}
368+
EEPROM.writeInt(address, 0);
369+
EEPROM.commit();
376370
}
377371

378-
379-
380-
void EEPROM_Read(int *num, int MemPos)
381-
{
382-
byte ByteArray[2];
383-
for(int x = 0; x < 2; x++)
384-
{
385-
ByteArray[x] = EEPROM.read((MemPos * 2) + x);
386-
}
387-
memcpy(num, ByteArray, 2);
388-
}
389-
390-

examples/Modules/NB-IoT-PLUS_M5311GB/NB-IoT-PLUS_M5311GB.ino

+94-16
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77

88
TFT_eSprite Disbuff = TFT_eSprite(&M5.Lcd);
99
TaskHandle_t xhandle_lte_event = NULL;
10-
SemaphoreHandle_t command_list_samap;
10+
SemaphoreHandle_t command_list_samap, pingflag_samap;
11+
12+
bool pingfinish = false;
1113

1214
typedef enum
1315
{
@@ -62,18 +64,68 @@ void LTEModuleTask(void *arg)
6264
{
6365
String str = Serial2.readString();
6466
restr += str;
67+
Serial.print(restr);
6568

6669
if (restr.indexOf("\r\n") != -1)
6770
{
71+
if( restr.indexOf("+IP:") != -1 )
72+
{
73+
String ipstr = restr.substring(restr.indexOf("+IP:") + String("+IP:").length(), restr.indexOf("\r\n",restr.indexOf("+IP:")));
74+
Serial.print("[P]"+ipstr+"\r\n");
75+
//(restr.indexOf("+IP:") + String("+IP:").length())
76+
77+
Disbuff.setCursor(7, 90);
78+
Disbuff.setTextSize(2);
79+
Disbuff.setTextColor(GREEN);
80+
Disbuff.printf(ipstr.c_str());
81+
Disbuff.pushSprite(0, 0);
82+
restr.clear();
83+
}
84+
85+
if( restr.indexOf("transmitted") != -1)
86+
{
87+
String substr = restr.substring(restr.indexOf("transmitted") + String("transmitted,").length(),restr.indexOf("\r\n",restr.indexOf("transmitted")));
88+
String number = substr.substring(substr.indexOf(',') + 1, substr.indexOf('%'));
89+
Serial.print("[T]"+substr+"\r\n");
90+
Serial.print("[N]"+number+"\r\n");
91+
substr.replace(',','\n');
92+
93+
Disbuff.fillRect(0,60,320,30,BLACK);
94+
Disbuff.setCursor(7, 60);
95+
Disbuff.setTextSize(2);
96+
97+
if( number.toInt() < 100 )
98+
{
99+
Disbuff.setTextColor(GREEN);
100+
}
101+
else
102+
{
103+
Disbuff.setTextColor(RED);
104+
}
105+
106+
Disbuff.printf("Lose %d%%", number.toInt());
107+
108+
Disbuff.pushSprite(0, 0);
109+
110+
xSemaphoreTake(pingflag_samap, portMAX_DELAY);
111+
pingfinish = true;
112+
xSemaphoreGive(pingflag_samap);
113+
114+
}
115+
if (serial_at.empty() == true)
116+
{
117+
restr.clear();
118+
}
68119
}
69120

70121
if (restr.indexOf("+ZMMI:") != -1)
71122
{
72123
zmmi_str = restr;
73124
}
125+
74126
else if ((restr.indexOf("OK") != -1) || (restr.indexOf("ERROR") != -1))
75127
{
76-
Serial.print(restr);
128+
//Serial.print(restr);
77129
if (restr.indexOf("OK") != -1)
78130
{
79131
if ((serial_at[0].command_type == kACTION_MO) || (serial_at[0].command_type == kASSIGN_MO))
@@ -303,13 +355,10 @@ void setup()
303355
{
304356
// put your setup code here, to run once:
305357
M5.begin();
306-
M5.Power.begin();
307-
Serial.begin(115200);
308358
Serial2.begin(115200, SERIAL_8N1, 16, 17);
309-
Serial.printf("FUCK STC\n");
310359

311-
Disbuff.createSprite(320, 100);
312-
Disbuff.fillRect(0, 0, 320, 100, BLACK);
360+
Disbuff.createSprite(320, 120);
361+
Disbuff.fillRect(0, 0, 320, 120, BLACK);
313362
Disbuff.drawRect(0, 0, 320, 20, Disbuff.color565(36, 36, 36));
314363
Disbuff.pushSprite(0, 0);
315364

@@ -333,13 +382,18 @@ void setup()
333382
command_list_samap = xSemaphoreCreateMutex();
334383
xSemaphoreGive(command_list_samap);
335384

385+
pingflag_samap = xSemaphoreCreateMutex();
386+
xSemaphoreGive(pingflag_samap);
387+
336388
int count_t = 0;
337389
AddMsg("AT\r\n", kASSIGN_MO, 1000, 1000);
338390
while (getATMsgSize() > 0)
339391
{
340392
Disbuff.fillRect(0, 0, 320, 20, Disbuff.color565(36, 36, 36));
341393
Disbuff.pushSprite(0, 0);
342394
Disbuff.setCursor(7, 7);
395+
Disbuff.setTextColor(WHITE);
396+
Disbuff.setTextSize(1);
343397
Disbuff.printf("Wait Modlue Srart %02d", count_t);
344398
Disbuff.pushSprite(0, 0);
345399
count_t++;
@@ -349,41 +403,62 @@ void setup()
349403
AddMsg("AT^CARDMODE\r\n", kQUERY_MT, 1000, 1000);
350404
while ((readSendState(0) == kSendReady) || (readSendState(0) == kSending) || (readSendState(0) == kWaitforMsg))
351405
delay(50);
352-
Serial.printf("Read state = %d \n", readSendState(0));
406+
int restate = readSendState(0);
407+
Serial.printf("Read state = %d \n", restate);
408+
if( restate == kErrorReError )
409+
{
410+
Disbuff.fillRect(0, 0, 320, 20, Disbuff.color565(36, 36, 36));
411+
Disbuff.pushSprite(0, 0);
412+
Disbuff.setCursor(7, 30);
413+
Disbuff.setTextColor(RED);
414+
Disbuff.printf("Unknown Card");
415+
Disbuff.pushSprite(0, 0);
416+
while(1);
417+
}
353418
readstr = ReadMsgstr(0).c_str();
354419
int count = GetstrNumber("CARDMODE:", "OK", readstr, numberbuff);
355420
if (count != 0)
356421
{
357422
Serial.printf("CardMode = %d", numberbuff[0]);
358-
Disbuff.fillRect(0, 0, 320, 20, Disbuff.color565(36, 36, 36));
423+
// Disbuff.fillRect(0, 0, 320, 20, Disbuff.color565(36, 36, 36));
359424
Disbuff.pushSprite(0, 0);
360-
Disbuff.setCursor(7, 7);
425+
Disbuff.setTextSize(2);
426+
Disbuff.setCursor(7, 30);
361427
switch (numberbuff[0])
362428
{
363429
case 0:
430+
Disbuff.setTextColor(RED);
364431
Disbuff.printf("Unknown Card");
365432
break;
366433
case 1:
434+
Disbuff.setTextColor(GREEN);
367435
Disbuff.printf("SIM Card");
368436
break;
369437
case 2:
438+
Disbuff.setTextColor(GREEN);
370439
Disbuff.printf("USIM Card");
371440
break;
372441
default:
442+
Disbuff.setTextColor(RED);
373443
Disbuff.printf("Unknown Card:E");
374444
break;
375445
}
376446
Disbuff.pushSprite(0, 0);
377447
}
378448
EraseFirstMsg();
379449

380-
AddMsg("AT+CFUN=1\r\n", kASSIGN_MO, 1000, 1000);
450+
//AddMsg("AT+CFUN=1\r\n", kASSIGN_MO, 1000, 1000);
451+
AddMsg("AT+SM=LOCK\r\n", kASSIGN_MO, 1000, 1000);
452+
381453

382454
AddMsg("AT^SYSCONFIG?\r\n", kQUERY_MT, 1000, 1000);
383455
while ((readSendState(0) == kSendReady) || (readSendState(0) == kSending) || (readSendState(0) == kWaitforMsg))
384-
delay(50);
456+
delay(50);
385457
Serial.printf("Read state = %d ", readSendState(0));
386458
Serial.print(ReadMsgstr(0).c_str());
459+
EraseFirstMsg();
460+
delay(3000);
461+
disableCore0WDT();
387462

388463
AddMsg("AT+MQTTSTAT?\r\n", kQUERY_MT, 1000, 1000);
389464
while ((readSendState(0) == kSendReady) || (readSendState(0) == kSending) || (readSendState(0) == kWaitforMsg))
@@ -404,7 +479,7 @@ void setup()
404479

405480
delay(3000);
406481

407-
AddMsg("AT+MQTTCFG=127.0.0.1,1883,110,60,M5Hard,hades,1,0\r\n", kQUERY_MT, 1000, 1000);
482+
AddMsg("AT+MQTTCFG=broker.emqx.io,1883,110,60,M5Hard,hades,1,0\r\n", kQUERY_MT, 1000, 1000);
408483
while ((readSendState(0) == kSendReady) || (readSendState(0) == kSending) || (readSendState(0) == kWaitforMsg))
409484
delay(50);
410485
Serial.printf("Read state = %d ", readSendState(0));
@@ -426,18 +501,21 @@ void setup()
426501
Serial.printf("Read state = %d ", readSendState(0));
427502
Serial.print(ReadMsgstr(0).c_str());
428503
EraseFirstMsg();
504+
429505
}
430506

431507
uint8_t restate;
432508
void loop()
433509
{
434510

435-
AddMsg("AT+MQTTPUB=pyr,1,0,0,0,Fuck STC from NB-Iot \r\n", kQUERY_MT, 1000, 1000);
511+
AddMsg("AT+MQTTPUB=pyr,1,0,0,0,NB-Iot Test \r\n", kQUERY_MT, 1000, 1000);
436512
while ((readSendState(0) == kSendReady) || (readSendState(0) == kSending) || (readSendState(0) == kWaitforMsg))
437513
delay(50);
438514
Serial.printf("Read state = %d \n", readSendState(0));
439515
Serial.print(ReadMsgstr(0).c_str());
440516
EraseFirstMsg();
441-
517+
//xSemaphoreGive(pingflag_samap);
518+
519+
delay(100);
442520
M5.update();
443-
}
521+
}

0 commit comments

Comments
 (0)