Moved addChipIdToHostname method into the constructor.
This commit is contained in:
parent
2c463174f1
commit
cc472c72df
33
simple_iot.h
33
simple_iot.h
@ -44,7 +44,6 @@ private:
|
|||||||
const char* _mqtt_pass;
|
const char* _mqtt_pass;
|
||||||
const char* _mqtt_topic;
|
const char* _mqtt_topic;
|
||||||
unsigned long _startup_complete_at = 0;
|
unsigned long _startup_complete_at = 0;
|
||||||
bool _chip_id_added = false;
|
|
||||||
bool _initialized = false;
|
bool _initialized = false;
|
||||||
|
|
||||||
void _setup();
|
void _setup();
|
||||||
@ -67,14 +66,13 @@ private:
|
|||||||
void _check_report_handlers();
|
void _check_report_handlers();
|
||||||
String _get_report_handler_result(IOTReportHandler* h, bool force_update);
|
String _get_report_handler_result(IOTReportHandler* h, bool force_update);
|
||||||
public:
|
public:
|
||||||
SimpleIOT(const char* wifi_ssid, const char* wifi_pass, String hostname);
|
SimpleIOT(const char* wifi_ssid, const char* wifi_pass, String hostname, bool append_chip_id=false);
|
||||||
void setStartupDelay(uint16_t delay);
|
void setStartupDelay(uint16_t delay);
|
||||||
void setMQTTData(const char* mqtt_host, uint16_t mqtt_port,
|
void setMQTTData(const char* mqtt_host, uint16_t mqtt_port,
|
||||||
const char* mqtt_user, const char* mqtt_pass,
|
const char* mqtt_user, const char* mqtt_pass,
|
||||||
const char* mqtt_topic);
|
const char* mqtt_topic);
|
||||||
void setMQTTData(const char* mqtt_host, uint16_t mqtt_port,
|
void setMQTTData(const char* mqtt_host, uint16_t mqtt_port,
|
||||||
const char* mqtt_topic);
|
const char* mqtt_topic);
|
||||||
void addChipIdToHostname();
|
|
||||||
void begin();
|
void begin();
|
||||||
void loop();
|
void loop();
|
||||||
bool act_on(String topic, IOTActionHandlerFunction f);
|
bool act_on(String topic, IOTActionHandlerFunction f);
|
||||||
@ -90,34 +88,21 @@ public:
|
|||||||
* @param hostname The hostname this device will use to identify itself.
|
* @param hostname The hostname this device will use to identify itself.
|
||||||
* It will be used as WiFi client name and for the mDNS stuff
|
* It will be used as WiFi client name and for the mDNS stuff
|
||||||
* of the OTA daemon.
|
* of the OTA daemon.
|
||||||
*
|
* @param append_chip_id If true, the ESP's chipID will be appended to the hostname.
|
||||||
* @see addChipIdToHostname()
|
* This can be useful in networks with more than one ESPs with
|
||||||
|
* the given hostname. `test` becomes `test-13D93B0A`.
|
||||||
*/
|
*/
|
||||||
SimpleIOT::SimpleIOT(const char* wifi_ssid, const char* wifi_pass, String hostname) {
|
SimpleIOT::SimpleIOT(const char* wifi_ssid, const char* wifi_pass, String hostname, bool append_chip_id) {
|
||||||
Serial.begin(74880);
|
Serial.begin(74880);
|
||||||
_wifi_ssid = wifi_ssid;
|
_wifi_ssid = wifi_ssid;
|
||||||
_wifi_pass = wifi_pass;
|
_wifi_pass = wifi_pass;
|
||||||
_hostname = hostname;
|
if (append_chip_id) {
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Appends the internal ID of the ESP8266 to the hostname given in the constructor.
|
|
||||||
* This makes the hostname a network with multiple ESP8266s.
|
|
||||||
*
|
|
||||||
* Example: `iot_test` becomes `iot_text-13D93B0A`.
|
|
||||||
*
|
|
||||||
* @warning This method has to be called before calling begin().
|
|
||||||
*/
|
|
||||||
void SimpleIOT::addChipIdToHostname() {
|
|
||||||
if (_initialized) return;
|
|
||||||
if (_chip_id_added) return;
|
|
||||||
char* temp = new char[9];
|
char* temp = new char[9];
|
||||||
snprintf(temp, 9, "-%08X", ESP.getChipId());
|
snprintf(temp, 9, "-%08X", ESP.getChipId());
|
||||||
String temp2(_hostname);
|
hostname.concat(temp);
|
||||||
temp2.concat(temp);
|
|
||||||
delete temp;
|
delete temp;
|
||||||
_hostname = temp2.c_str();
|
}
|
||||||
_chip_id_added = true;
|
_hostname = hostname;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user