77
88TFT_eSprite Disbuff = TFT_eSprite(&M5.Lcd);
99TaskHandle_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
1214typedef 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
431507uint8_t restate;
432508void 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