Skip to content

Commit e1c5aad

Browse files
authored
Merge pull request #586 from blinker-iot/dev_3.0
update codes
2 parents 045f2e7 + ad0b526 commit e1c5aad

File tree

6 files changed

+84
-30
lines changed

6 files changed

+84
-30
lines changed

library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"type": "git",
1414
"url": "https://github.com/blinker-iot/blinker-library.git"
1515
},
16-
"version": "0.3.80210927",
16+
"version": "0.3.0.3.80211227",
1717
"homepage": "https://diandeng.tech/home",
1818
"export": {
1919
"exclude": [

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=Blinker
2-
version=0.3.80210927
2+
version=0.3.0.3.80211227
33
author=i3water
44
maintainer=i3wawter
55
sentence=Build a easy way for your IoT project.

src/Adapters/BlinkerMQTT.h

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2786,9 +2786,16 @@ bool BlinkerMQTT::checkInit()
27862786
BLINKER_LOG(BLINKER_F("IP Address: "));
27872787
BLINKER_LOG(WiFi.localIP());
27882788
_isWiFiInit = true;
2789-
_connectTime = 0;
2789+
_connectTime = 0;
2790+
char loadssid[BLINKER_SSID_SIZE];
2791+
char loadpswd[BLINKER_PSWD_SIZE];
2792+
2793+
memcpy(loadssid, WiFi.SSID().c_str(), BLINKER_SSID_SIZE);
2794+
memcpy(loadpswd, WiFi.psk().c_str(), BLINKER_PSWD_SIZE);
27902795

27912796
EEPROM.begin(BLINKER_EEP_SIZE);
2797+
EEPROM.put(BLINKER_EEP_ADDR_SSID, loadssid);
2798+
EEPROM.put(BLINKER_EEP_ADDR_PSWD, loadpswd);
27922799
EEPROM.put(BLINKER_EEP_ADDR_WLAN_CHECK, ok);
27932800
EEPROM.commit();
27942801
EEPROM.end();
@@ -2855,8 +2862,15 @@ bool BlinkerMQTT::checkInit()
28552862
_connectTime = 0;
28562863

28572864
// begin();
2865+
char loadssid[BLINKER_SSID_SIZE];
2866+
char loadpswd[BLINKER_PSWD_SIZE];
2867+
2868+
memcpy(loadssid, WiFi.SSID().c_str(), BLINKER_SSID_SIZE);
2869+
memcpy(loadpswd, WiFi.psk().c_str(), BLINKER_PSWD_SIZE);
28582870

28592871
EEPROM.begin(BLINKER_EEP_SIZE);
2872+
EEPROM.put(BLINKER_EEP_ADDR_SSID, loadssid);
2873+
EEPROM.put(BLINKER_EEP_ADDR_PSWD, loadpswd);
28602874
EEPROM.put(BLINKER_EEP_ADDR_WLAN_CHECK, ok);
28612875
EEPROM.commit();
28622876
EEPROM.end();
@@ -3018,24 +3032,44 @@ bool BlinkerMQTT::autoInit()
30183032

30193033
if (checkConfig())
30203034
{
3021-
#ifdef ESP8266
3022-
struct station_config conf;
3023-
wifi_station_get_config_default(&conf);
3024-
WiFi.begin(reinterpret_cast<char*>(conf.ssid), reinterpret_cast<char*>(conf.password));
3025-
#elif defined(ESP32)
3026-
wifi_config_t conf;
3027-
esp_wifi_get_config(WIFI_IF_STA, &conf);
3028-
WiFi.begin(reinterpret_cast<char*>(conf.sta.ssid), reinterpret_cast<char*>(conf.sta.password));
3029-
#endif
3035+
// #ifdef ESP8266
3036+
// // struct station_config conf;
3037+
// softap_config conf;
3038+
// // wifi_station_get_config_default(&conf);
3039+
// wifi_softap_get_config(&conf);
3040+
// WiFi.begin(reinterpret_cast<char*>(conf.ssid), reinterpret_cast<char*>(conf.password));
3041+
// #elif defined(ESP32)
3042+
// wifi_config_t conf;
3043+
// esp_wifi_get_config(WIFI_IF_STA, &conf);
3044+
// WiFi.begin(reinterpret_cast<char*>(conf.sta.ssid), reinterpret_cast<char*>(conf.sta.password));
3045+
// #endif
30303046
// WiFi.begin(WiFi.SSID(), WiFi.psk());
3047+
3048+
char loadssid[BLINKER_SSID_SIZE];
3049+
char loadpswd[BLINKER_PSWD_SIZE];
3050+
3051+
EEPROM.begin(BLINKER_EEP_SIZE);
3052+
EEPROM.get(BLINKER_EEP_ADDR_SSID, loadssid);
3053+
EEPROM.get(BLINKER_EEP_ADDR_PSWD, loadpswd);
3054+
// char ok[2 + 1];
3055+
// EEPROM.get(EEP_ADDR_WIFI_CFG + BLINKER_SSID_SIZE + BLINKER_PSWD_SIZE, ok);
3056+
EEPROM.commit();
3057+
EEPROM.end();
3058+
3059+
// strcpy(_ssid, loadssid);
3060+
// strcpy(_pswd, loadpswd);
3061+
3062+
BLINKER_LOG(BLINKER_F("SSID: "), loadssid, BLINKER_F(" PASWD: "), loadpswd);
30313063
::delay(500);
30323064

3065+
WiFi.begin(loadssid, loadpswd);
3066+
30333067
// BLINKER_LOG(BLINKER_F("Waiting for WiFi "),
30343068
// BLINKER_WIFI_AUTO_INIT_TIMEOUT / 1000,
30353069
// BLINKER_F("s, will enter SMARTCONFIG or "),
30363070
// BLINKER_F("APCONFIG while WiFi not connect!"));
30373071

3038-
BLINKER_LOG(BLINKER_F("Connecting to WiFi: "), WiFi.SSID());
3072+
BLINKER_LOG(BLINKER_F("Connecting to WiFi: "), loadssid);
30393073

30403074
#if defined(BLINKER_APCONFIG_V2)
30413075
char _auth[BLINKER_AUTHKEY_SIZE];

src/Adapters/BlinkerPROESP.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -928,6 +928,11 @@ int BlinkerPROESP::print(char * data, bool needCheck)
928928
// // payload += BLINKER_F("\",\"deviceType\":\"OwnApp\"}");
929929
// }
930930

931+
if (isMQTTinit == false) {
932+
BLINKER_ERR_LOG("print fail, mqtt not init...");
933+
return false;
934+
}
935+
931936
uint16_t num = strlen(data);
932937

933938
for(uint16_t c_num = num; c_num > 0; c_num--)

src/Blinker/BlinkerApi.h

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -502,10 +502,15 @@ class BlinkerApi : public BlinkerProtocol
502502
#if defined(BLINKER_WIFI) || defined(BLINKER_MQTT) || \
503503
defined(BLINKER_PRO) || defined(BLINKER_PRO_ESP)
504504

505-
void attachRTData(blinker_callback_t newFunction)
505+
void attachRTData(blinker_callback_t newFunction, uint8_t rt_sec = 1)
506506
{
507507
// strcpy(_RTDataKey, _name);
508508
_RTDataFunc = newFunction;
509+
510+
if (rt_sec > 0 && rt_sec < 9)
511+
{
512+
_RTTime = rt_sec;
513+
}
509514
}
510515

511516
#endif
@@ -1087,6 +1092,7 @@ class BlinkerApi : public BlinkerProtocol
10871092
blinker_callback_t _RTDataFunc = NULL;
10881093
uint8_t _RTTimesCount = 0;
10891094
Ticker _RTTicker;
1095+
uint8_t _RTTime = 1;
10901096
#endif
10911097

10921098
#if defined(BLINKER_MQTT) || defined(BLINKER_PRO) || defined(BLINKER_AT_MQTT) ||\
@@ -4698,22 +4704,31 @@ void BlinkerApi::rtParse(const JsonObject& data)
46984704

46994705
data_rtKeyCount = 0;
47004706

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"));
47044710

4705-
if (get_key != "null")
4711+
for (size_t i = 0; i < BLINKER_MAX_RTDATA_SIZE; i++)
47064712
{
4707-
BLINKER_LOG_ALL(BLINKER_F("===>rt get_key: "), get_key);
4713+
String get_key = data["rt"][i];
47084714

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+
}
47174732
}
47184733
}
47194734

@@ -4774,7 +4789,7 @@ void BlinkerApi::rtParse(const JsonObject& data)
47744789
// if (_RTDataFunc && data_rtRun == false)
47754790
// {
47764791
// data_rtRun = true;
4777-
_RTTicker.once(1, _RTDataFunc);
4792+
_RTTicker.once(_RTTime, _RTDataFunc);
47784793

47794794
data_rtTimes = 0;
47804795

@@ -7103,7 +7118,7 @@ float BlinkerApi::gps(b_gps_t axis)
71037118

71047119
// printObject(_RTDataKey, data);
71057120

7106-
_RTTicker.once(1, _RTDataFunc);
7121+
_RTTicker.once(_RTTime, _RTDataFunc);
71077122

71087123
data_rtTimes++;
71097124

src/Blinker/BlinkerConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// #include "Blinker/BlinkerUtility.h"
66
#include "../Server/BlinkerServer.h"
77

8-
#define BLINKER_VERSION "0.3.80210927"
8+
#define BLINKER_VERSION "0.3.0.3.80211227"
99

1010
#define BLINKER_CONNECT_TIMEOUT_MS 10000UL
1111

0 commit comments

Comments
 (0)