pvvx
Активный участник сообщества
Тут задавайте вопросы по функциям SDK Espressif.
Если что известно, то отвечу или ответят.
----------
Кто знает зачем wifi_station_set_hostname()?
По старту исполняется wifi_station_set_default_hostname(info.st_mac);
Она выделяет память и назначает имя ESP_XXXXX:
Далее это имя используется в struct netif * nif...
Что это дает?
Если что известно, то отвечу или ответят.
----------
Кто знает зачем wifi_station_set_hostname()?
По старту исполняется wifi_station_set_default_hostname(info.st_mac);
Она выделяет память и назначает имя ESP_XXXXX:
Код:
extern uint8 * hostname; // in eagle_lwip_if.c
bool default_hostname = true;
uint8 * wifi_station_get_hostname(void)
{
uint32 opmode = wifi_get_opmode();
if(opmode == 1 || opmode == 3) {
return hostname;
}
return NULL;
}
void wifi_station_set_default_hostname(uint8 * mac)
{
if(hostname != NULL) {
vPortFree(hostname);
hostname = NULL;
}
hostname = pvPortMalloc(32);
if(hostname == NULL) {
ets_sprintf(hostname,"ESP_%02X%02X%02X", mac[3], mac[4], mac[5]);
}
}
bool wifi_station_set_hostname(uint8 * name)
{
if(name == NULL) return false;
uint32 len = ets_strlen(name);
if(len > 32) return false;
uint32 opmode = wifi_get_opmode();
if(opmode == 1 || opmode == 3) {
default_hostname = false;
if(hostname != NULL) {
vPortFree(hostname);
hostname = NULL;
}
hostname = pvPortMalloc(len);
if(hostname == NULL) return false;
struct netif * nif = eagle_lwip_getif(0);
ets_strcpy(hostname, name);
if(nif != NULL) {
nif->hostname = hostname;
}
return true;
}
return false;
}
Что это дает?
Последнее редактирование: