ESP8266

ESP8266更改hostname

SDK版本:ESP8266_RTOS_SDK(V3.3)

接口:esp_err_t tcpip_adapter_set_hostname(tcpip_adapter_if_t tcpip_if, const char *hostname);

参数说明:

/* TODO: add Ethernet interface */
typedef enum {
TCPIP_ADAPTER_IF_STA = 0, /**< TCP-IP adatpter station interface */
TCPIP_ADAPTER_IF_AP, /**< TCP-IP adatpter soft-AP interface */
TCPIP_ADAPTER_IF_ETH, /**< TCP-IP adatpter ethernet interface */
TCPIP_ADAPTER_IF_MAX
} tcpip_adapter_if_t;

AP模式使用TCPIP_ADAPTER_IF_AP, STA模式使用TCPIP_ADAPTER_IF_STA;

hostname是常量字符串;

调用位置:

在自定义的系统回调函数里的case SYSTEM_EVENT_STA_START之后增加;

如:

case SYSTEM_EVENT_STA_START:
    tcpip_adapter_set_hostname(TCPIP_ADAPTER_IF_STA, HOSTNAME);
    ESP_LOGI(TAG, "Changed hostname to %s.", HOSTNAME);

默认的“LWIP”是在ethernetif_init函数中设置的。具体细节可以自行阅读源码。