From 5572186eab014e6c48cf1d291485f22c230715f7 Mon Sep 17 00:00:00 2001 From: lb117 <103403329+lb117@users.noreply.github.com> Date: Mon, 11 Apr 2022 21:54:04 +0800 Subject: [PATCH] Update BlinkerMQTTAT.h update codes, add Blinker broker support codes --- src/Adapters/BlinkerMQTTAT.h | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/Adapters/BlinkerMQTTAT.h b/src/Adapters/BlinkerMQTTAT.h index 363cc864..9178be7b 100644 --- a/src/Adapters/BlinkerMQTTAT.h +++ b/src/Adapters/BlinkerMQTTAT.h @@ -2067,6 +2067,12 @@ int BlinkerMQTTAT::connectServer() { url_iot += BLINKER_F("&duerType=AIR_MONITOR"); } + #ifndef BLINKER_WITHOUT_SSL + url_iot += BLINKER_F("&protocol=mqtts"); + #else + url_iot += BLINKER_F("&protocol=mqtt"); + #endif + url_iot = "https://" + host + url_iot; BLINKER_LOG_ALL(BLINKER_F("[HTTP] GET... url_iot: "), url_iot); @@ -2241,6 +2247,12 @@ int BlinkerMQTTAT::connectServer() { String _productInfo = root[BLINKER_CMD_DETAIL][BLINKER_CMD_PRODUCTKEY]; String _broker = root[BLINKER_CMD_DETAIL][BLINKER_CMD_BROKER]; String _uuid = root[BLINKER_CMD_DETAIL][BLINKER_CMD_UUID]; + String _host = root[BLINKER_CMD_DETAIL]["host"]; + uint32_t _port = root[BLINKER_CMD_DETAIL]["port"]; + uint8_t _num = _host.indexOf("://"); + BLINKER_LOG_ALL("_num: ", _num); + if (_num > 0) _num += 3; + _host = _host.substring(_num, _host.length()); if (isMQTTinit) { @@ -2310,6 +2322,22 @@ int BlinkerMQTTAT::connectServer() { strcpy(MQTT_HOST_MQTT_AT, BLINKER_MQTT_ONENET_HOST); MQTT_PORT_MQTT_AT = BLINKER_MQTT_ONENET_PORT; } + else if (_broker == BLINKER_MQTT_BORKER_BLINKER) { + // memcpy(DEVICE_NAME_MQTT_AT, _userID.c_str(), 12); + DEVICE_NAME_MQTT_AT = (char*)malloc((_userID.length()+1)*sizeof(char)); + strcpy(DEVICE_NAME_MQTT_AT, _userID.c_str()); + MQTT_ID_MQTT_AT = (char*)malloc((_userID.length()+1)*sizeof(char)); + strcpy(MQTT_ID_MQTT_AT, _userID.c_str()); + MQTT_NAME_MQTT_AT = (char*)malloc((_userName.length()+1)*sizeof(char)); + strcpy(MQTT_NAME_MQTT_AT, _userName.c_str()); + MQTT_KEY_MQTT_AT = (char*)malloc((_key.length()+1)*sizeof(char)); + strcpy(MQTT_KEY_MQTT_AT, _key.c_str()); + MQTT_PRODUCTINFO_MQTT_AT = (char*)malloc((_productInfo.length()+1)*sizeof(char)); + strcpy(MQTT_PRODUCTINFO_MQTT_AT, _productInfo.c_str()); + MQTT_HOST_MQTT_AT = (char*)malloc((_host.length()+1)*sizeof(char)); + strcpy(MQTT_HOST_MQTT_AT, _host.c_str()); + MQTT_PORT_MQTT_AT = _port; + } UUID_MQTT_AT = (char*)malloc((_uuid.length()+1)*sizeof(char)); strcpy(UUID_MQTT_AT, _uuid.c_str()); @@ -2395,6 +2423,31 @@ int BlinkerMQTTAT::connectServer() { BLINKER_LOG_ALL(BLINKER_F("BLINKER_SUB_TOPIC_MQTT_AT: "), BLINKER_SUB_TOPIC_MQTT_AT); } + else if (_broker == BLINKER_MQTT_BORKER_BLINKER) { + String PUB_TOPIC_STR = BLINKER_F("/device"); + // PUB_TOPIC_STR += MQTT_PRODUCTINFO_MQTT; + PUB_TOPIC_STR += BLINKER_F("/"); + PUB_TOPIC_STR += _userID; + PUB_TOPIC_STR += BLINKER_F("/s"); + + BLINKER_PUB_TOPIC_MQTT_AT = (char*)malloc((PUB_TOPIC_STR.length() + 1)*sizeof(char)); + // memcpy(BLINKER_PUB_TOPIC_MQTT_AT, PUB_TOPIC_STR.c_str(), str_len); + strcpy(BLINKER_PUB_TOPIC_MQTT_AT, PUB_TOPIC_STR.c_str()); + + BLINKER_LOG_ALL(BLINKER_F("BLINKER_PUB_TOPIC_MQTT_AT: "), BLINKER_PUB_TOPIC_MQTT_AT); + + String SUB_TOPIC_STR = BLINKER_F("/device"); + // SUB_TOPIC_STR += MQTT_PRODUCTINFO_MQTT; + SUB_TOPIC_STR += BLINKER_F("/"); + SUB_TOPIC_STR += _userID; + SUB_TOPIC_STR += BLINKER_F("/r"); + + BLINKER_SUB_TOPIC_MQTT_AT = (char*)malloc((SUB_TOPIC_STR.length() + 1)*sizeof(char)); + // memcpy(BLINKER_SUB_TOPIC_MQTT_AT, SUB_TOPIC_STR.c_str(), str_len); + strcpy(BLINKER_SUB_TOPIC_MQTT_AT, SUB_TOPIC_STR.c_str()); + + BLINKER_LOG_ALL(BLINKER_F("BLINKER_SUB_TOPIC_MQTT_AT: "), BLINKER_SUB_TOPIC_MQTT_AT); + } // BLINKER_LOG_FreeHeap(); @@ -2425,6 +2478,13 @@ int BlinkerMQTTAT::connectServer() { else if (_broker == BLINKER_MQTT_BORKER_ONENET) { mqtt_MQTT_AT = new Adafruit_MQTT_Client(&client, MQTT_HOST_MQTT_AT, MQTT_PORT_MQTT_AT, MQTT_ID_MQTT_AT, MQTT_NAME_MQTT_AT, MQTT_KEY_MQTT_AT); } + else if (_broker == BLINKER_MQTT_BORKER_BLINKER) { + #if defined(ESP8266) + mqtt_MQTT_AT = new Adafruit_MQTT_Client(&client_mqtt, MQTT_HOST_MQTT_AT, MQTT_PORT_MQTT_AT, MQTT_ID_MQTT_AT, MQTT_NAME_MQTT_AT, MQTT_KEY_MQTT_AT); + #elif defined(ESP32) + mqtt_MQTT_AT = new Adafruit_MQTT_Client(&client_s, MQTT_HOST_MQTT_AT, MQTT_PORT_MQTT_AT, MQTT_ID_MQTT_AT, MQTT_NAME_MQTT_AT, MQTT_KEY_MQTT_AT); + #endif + } // iotPub = new Adafruit_MQTT_Publish(mqtt_MQTT_AT, BLINKER_PUB_TOPIC_MQTT_AT); // if (!isMQTTinit)