/****************************************************************************** * FunctionName : user_init * Description : entry of user application, init user function here * Parameters : none * Returns : none *******************************************************************************/ void ICACHE_FLASH_ATTR user_init(void) { printf("SDK version:%d.%d.%d\n", SDK_VERSION_MAJOR, SDK_VERSION_MINOR, SDK_VERSION_REVISION); /* need to set opmode before you set config */ wifi_set_opmode(STATIONAP_MODE); { struct station_config *config = (struct station_config *)zalloc(sizeof(struct station_config)); sprintf(config->ssid, "CVR100W_T"); sprintf(config->password, "justfortest"); /* need to sure that you are in station mode first, * otherwise it will be failed. */ wifi_station_set_config(config); free(config); } { struct ip_info ipinfo; ipinfo.gw.addr = ipaddr_addr("192.168.145.253"); ipinfo.ip.addr = ipaddr_addr("192.168.145.253"); ipinfo.netmask.addr = ipaddr_addr("255.255.255.0"); wifi_set_ip_info(SOFTAP_IF, &ipinfo); } { struct dhcp_info *pdhcp_info = NULL; pdhcp_info = (struct dhcp_info *)zalloc(sizeof(struct dhcp_info)); pdhcp_info->start_ip = ipaddr_addr("192.168.145.100"); pdhcp_info->end_ip = ipaddr_addr("192.168.145.110"); // don't set the range too large, because it will cost memory. pdhcp_info->max_leases = 10; pdhcp_info->auto_time = 60; pdhcp_info->decline_time = 60; pdhcp_info->conflict_time = 60; pdhcp_info->offer_time = 60; pdhcp_info->min_lease_sec = 60; dhcp_set_info(pdhcp_info); free(pdhcp_info); } udhcpd_start(); xTaskCreate(task2, "tsk2", 256, NULL, 2, NULL); xTaskCreate(task3, "tsk3", 256, NULL, 2, NULL); }
// warn: each IP in the range requires memory! void STC_FLASHMEM DHCPServer::configure(char const* startIP, char const* endIP, uint32_t maxLeases) { //udhcpd_stop(); dhcp_info info = {0}; info.start_ip = ipaddr_addr(APtr<char>(f_strdup(startIP)).get()); info.end_ip = ipaddr_addr(APtr<char>(f_strdup(endIP)).get()); info.max_leases = maxLeases; info.auto_time = 60; info.decline_time = 60; info.conflict_time = 60; info.offer_time = 60; info.min_lease_sec = 60; dhcp_set_info(&info); udhcpd_start(); }