@@ -502,10 +502,15 @@ class BlinkerApi : public BlinkerProtocol
502
502
#if defined(BLINKER_WIFI) || defined(BLINKER_MQTT) || \
503
503
defined(BLINKER_PRO) || defined(BLINKER_PRO_ESP)
504
504
505
- void attachRTData(blinker_callback_t newFunction)
505
+ void attachRTData(blinker_callback_t newFunction, uint8_t rt_sec = 1 )
506
506
{
507
507
// strcpy(_RTDataKey, _name);
508
508
_RTDataFunc = newFunction;
509
+
510
+ if (rt_sec > 0 && rt_sec < 9)
511
+ {
512
+ _RTTime = rt_sec;
513
+ }
509
514
}
510
515
511
516
#endif
@@ -1087,6 +1092,7 @@ class BlinkerApi : public BlinkerProtocol
1087
1092
blinker_callback_t _RTDataFunc = NULL;
1088
1093
uint8_t _RTTimesCount = 0;
1089
1094
Ticker _RTTicker;
1095
+ uint8_t _RTTime = 1;
1090
1096
#endif
1091
1097
1092
1098
#if defined(BLINKER_MQTT) || defined(BLINKER_PRO) || defined(BLINKER_AT_MQTT) ||\
@@ -4698,22 +4704,31 @@ void BlinkerApi::rtParse(const JsonObject& data)
4698
4704
4699
4705
data_rtKeyCount = 0;
4700
4706
4701
- for (size_t i = 0; i < BLINKER_MAX_RTDATA_SIZE; i++)
4702
- {
4703
- String get_key = data[" rt"][i] ;
4707
+ if (data.containsKey("rt")) {
4708
+
4709
+ BLINKER_LOG_ALL(BLINKER_F("containsKey rt")) ;
4704
4710
4705
- if (get_key != "null" )
4711
+ for (size_t i = 0; i < BLINKER_MAX_RTDATA_SIZE; i++ )
4706
4712
{
4707
- BLINKER_LOG_ALL(BLINKER_F("===>rt get_key: "), get_key) ;
4713
+ String get_key = data["rt"][i] ;
4708
4714
4709
- // for (size_t num = 0; num < data_rtDataCount; num++)
4710
- // {
4711
- // if (_RTData[num]->checkName(get_key.c_str()))
4712
- // {
4713
- // strcpy(_RTDataKey[data_rtKeyCount], get_key.c_str());
4714
- data_rtKeyCount++;
4715
- // }
4716
- // }
4715
+ if (get_key != "null")
4716
+ {
4717
+ BLINKER_LOG_ALL(BLINKER_F("===>rt get_key: "), get_key);
4718
+
4719
+ // for (size_t num = 0; num < data_rtDataCount; num++)
4720
+ // {
4721
+ // if (_RTData[num]->checkName(get_key.c_str()))
4722
+ // {
4723
+ // strcpy(_RTDataKey[data_rtKeyCount], get_key.c_str());
4724
+ data_rtKeyCount++;
4725
+ // }
4726
+ // }
4727
+ }
4728
+ else
4729
+ {
4730
+ break;
4731
+ }
4717
4732
}
4718
4733
}
4719
4734
@@ -4774,7 +4789,7 @@ void BlinkerApi::rtParse(const JsonObject& data)
4774
4789
// if (_RTDataFunc && data_rtRun == false)
4775
4790
// {
4776
4791
// data_rtRun = true;
4777
- _RTTicker.once(1 , _RTDataFunc);
4792
+ _RTTicker.once(_RTTime , _RTDataFunc);
4778
4793
4779
4794
data_rtTimes = 0;
4780
4795
@@ -7103,7 +7118,7 @@ float BlinkerApi::gps(b_gps_t axis)
7103
7118
7104
7119
// printObject(_RTDataKey, data);
7105
7120
7106
- _RTTicker.once(1 , _RTDataFunc);
7121
+ _RTTicker.once(_RTTime , _RTDataFunc);
7107
7122
7108
7123
data_rtTimes++;
7109
7124
0 commit comments