mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-09-22 15:03:13 +08:00
fix(example): Fix warning in wifi_station_machine
This commit is contained in:
@ -1,106 +0,0 @@
|
|||||||
/* WiFi station machine example
|
|
||||||
|
|
||||||
This example code is in the Public Domain (or CC0 licensed, at your option.)
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, this
|
|
||||||
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
||||||
CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "esp_system.h"
|
|
||||||
#include "esp_timer.h"
|
|
||||||
|
|
||||||
#include "user_config.h"
|
|
||||||
|
|
||||||
static os_timer_t timer;
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* FunctionName : user_rf_cal_sector_set
|
|
||||||
* Description : SDK just reversed 4 sectors, used for rf init data and paramters.
|
|
||||||
* We add this function to force users to set rf cal sector, since
|
|
||||||
* we don't know which sector is free in user's application.
|
|
||||||
* sector map for last several sectors : ABCCC
|
|
||||||
* A : rf cal
|
|
||||||
* B : rf init data
|
|
||||||
* C : sdk parameters
|
|
||||||
* Parameters : none
|
|
||||||
* Returns : rf cal sector
|
|
||||||
*******************************************************************************/
|
|
||||||
uint32_t user_rf_cal_sector_set(void)
|
|
||||||
{
|
|
||||||
flash_size_map size_map = system_get_flash_size_map();
|
|
||||||
uint32_t rf_cal_sec = 0;
|
|
||||||
|
|
||||||
switch (size_map) {
|
|
||||||
case FLASH_SIZE_4M_MAP_256_256:
|
|
||||||
rf_cal_sec = 128 - 5;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FLASH_SIZE_8M_MAP_512_512:
|
|
||||||
rf_cal_sec = 256 - 5;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FLASH_SIZE_16M_MAP_512_512:
|
|
||||||
case FLASH_SIZE_16M_MAP_1024_1024:
|
|
||||||
rf_cal_sec = 512 - 5;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FLASH_SIZE_32M_MAP_512_512:
|
|
||||||
case FLASH_SIZE_32M_MAP_1024_1024:
|
|
||||||
rf_cal_sec = 1024 - 5;
|
|
||||||
break;
|
|
||||||
case FLASH_SIZE_64M_MAP_1024_1024:
|
|
||||||
rf_cal_sec = 2048 - 5;
|
|
||||||
break;
|
|
||||||
case FLASH_SIZE_128M_MAP_1024_1024:
|
|
||||||
rf_cal_sec = 4096 - 5;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
rf_cal_sec = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rf_cal_sec;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void wait_for_connection_ready(uint8_t flag)
|
|
||||||
{
|
|
||||||
os_timer_disarm(&timer);
|
|
||||||
if(wifi_station_connected()){
|
|
||||||
printf("connected\n");
|
|
||||||
} else {
|
|
||||||
printf("reconnect after 2s\n");
|
|
||||||
os_timer_setfn(&timer, (os_timer_func_t *)wait_for_connection_ready, NULL);
|
|
||||||
os_timer_arm(&timer, 2000, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void on_wifi_connect(){
|
|
||||||
os_timer_disarm(&timer);
|
|
||||||
os_timer_setfn(&timer, (os_timer_func_t *)wait_for_connection_ready, NULL);
|
|
||||||
os_timer_arm(&timer, 100, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void on_wifi_disconnect(uint8_t reason){
|
|
||||||
printf("disconnect %d\n", reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* FunctionName : user_init
|
|
||||||
* Description : entry of user application, init user function here
|
|
||||||
* Parameters : none
|
|
||||||
* Returns : none
|
|
||||||
*******************************************************************************/
|
|
||||||
void user_init(void)
|
|
||||||
{
|
|
||||||
printf("SDK version:%s\n", system_get_sdk_version());
|
|
||||||
|
|
||||||
set_on_station_connect(on_wifi_connect);
|
|
||||||
set_on_station_disconnect(on_wifi_disconnect);
|
|
||||||
init_esp_wifi();
|
|
||||||
stop_wifi_ap();
|
|
||||||
start_wifi_station(SSID, PASSWORD);
|
|
||||||
}
|
|
@ -7,16 +7,20 @@
|
|||||||
CONDITIONS OF ANY KIND, either express or implied.
|
CONDITIONS OF ANY KIND, either express or implied.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include "lwipopts.h"
|
#include <string.h>
|
||||||
#include "lwip/ip_addr.h"
|
|
||||||
#include "esp_libc.h"
|
|
||||||
#include "esp_misc.h"
|
#include "esp_misc.h"
|
||||||
#include "esp_wifi.h"
|
|
||||||
#include "esp_sta.h"
|
#include "esp_sta.h"
|
||||||
#include "esp_softap.h"
|
#include "esp_softap.h"
|
||||||
|
#include "esp_system.h"
|
||||||
|
#include "esp_timer.h"
|
||||||
|
|
||||||
#include "wifi_state_machine.h"
|
#include "wifi_state_machine.h"
|
||||||
|
|
||||||
|
#include "user_config.h"
|
||||||
|
|
||||||
typedef void (* wifi_state_cb_t)();
|
typedef void (* wifi_state_cb_t)();
|
||||||
|
|
||||||
wifi_state_cb_t on_station_first_connect = NULL;
|
wifi_state_cb_t on_station_first_connect = NULL;
|
||||||
@ -149,10 +153,10 @@ bool start_wifi_station(const char * ssid, const char * pass){
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
struct station_config config;
|
struct station_config config;
|
||||||
memset(&config, 0, sizeof(struct station_config));
|
memset((void *)&config, 0, sizeof(struct station_config));
|
||||||
strcpy(config.ssid, ssid);
|
strcpy((char *)config.ssid, ssid);
|
||||||
if(pass){
|
if(pass){
|
||||||
strcpy(config.password, pass);
|
strcpy((char *)config.password, pass);
|
||||||
}
|
}
|
||||||
if(!wifi_station_set_config(&config)){
|
if(!wifi_station_set_config(&config)){
|
||||||
printf("Failed to set Station config!\n");
|
printf("Failed to set Station config!\n");
|
||||||
@ -194,9 +198,9 @@ bool start_wifi_ap(const char * ssid, const char * pass){
|
|||||||
}
|
}
|
||||||
struct softap_config config;
|
struct softap_config config;
|
||||||
bzero(&config, sizeof(struct softap_config));
|
bzero(&config, sizeof(struct softap_config));
|
||||||
sprintf(config.ssid, ssid);
|
sprintf((char *)config.ssid, ssid);
|
||||||
if(pass){
|
if(pass){
|
||||||
sprintf(config.password, pass);
|
sprintf((char *)config.password, pass);
|
||||||
}
|
}
|
||||||
return wifi_softap_set_config(&config);
|
return wifi_softap_set_config(&config);
|
||||||
}
|
}
|
||||||
@ -228,3 +232,92 @@ bool wifi_ap_enabled(){
|
|||||||
return !!(wifi_get_opmode() & SOFTAP_MODE);
|
return !!(wifi_get_opmode() & SOFTAP_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static os_timer_t timer;
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* FunctionName : user_rf_cal_sector_set
|
||||||
|
* Description : SDK just reversed 4 sectors, used for rf init data and paramters.
|
||||||
|
* We add this function to force users to set rf cal sector, since
|
||||||
|
* we don't know which sector is free in user's application.
|
||||||
|
* sector map for last several sectors : ABCCC
|
||||||
|
* A : rf cal
|
||||||
|
* B : rf init data
|
||||||
|
* C : sdk parameters
|
||||||
|
* Parameters : none
|
||||||
|
* Returns : rf cal sector
|
||||||
|
*******************************************************************************/
|
||||||
|
uint32_t user_rf_cal_sector_set(void)
|
||||||
|
{
|
||||||
|
flash_size_map size_map = system_get_flash_size_map();
|
||||||
|
uint32_t rf_cal_sec = 0;
|
||||||
|
|
||||||
|
switch (size_map) {
|
||||||
|
case FLASH_SIZE_4M_MAP_256_256:
|
||||||
|
rf_cal_sec = 128 - 5;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FLASH_SIZE_8M_MAP_512_512:
|
||||||
|
rf_cal_sec = 256 - 5;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FLASH_SIZE_16M_MAP_512_512:
|
||||||
|
case FLASH_SIZE_16M_MAP_1024_1024:
|
||||||
|
rf_cal_sec = 512 - 5;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FLASH_SIZE_32M_MAP_512_512:
|
||||||
|
case FLASH_SIZE_32M_MAP_1024_1024:
|
||||||
|
rf_cal_sec = 1024 - 5;
|
||||||
|
break;
|
||||||
|
case FLASH_SIZE_64M_MAP_1024_1024:
|
||||||
|
rf_cal_sec = 2048 - 5;
|
||||||
|
break;
|
||||||
|
case FLASH_SIZE_128M_MAP_1024_1024:
|
||||||
|
rf_cal_sec = 4096 - 5;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
rf_cal_sec = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rf_cal_sec;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void wait_for_connection_ready(uint8_t flag)
|
||||||
|
{
|
||||||
|
os_timer_disarm(&timer);
|
||||||
|
if(wifi_station_connected()){
|
||||||
|
printf("connected\n");
|
||||||
|
} else {
|
||||||
|
printf("reconnect after 2s\n");
|
||||||
|
os_timer_setfn(&timer, (os_timer_func_t *)wait_for_connection_ready, NULL);
|
||||||
|
os_timer_arm(&timer, 2000, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void on_wifi_connect(){
|
||||||
|
os_timer_disarm(&timer);
|
||||||
|
os_timer_setfn(&timer, (os_timer_func_t *)wait_for_connection_ready, NULL);
|
||||||
|
os_timer_arm(&timer, 100, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void on_wifi_disconnect(uint8_t reason){
|
||||||
|
printf("disconnect %d\n", reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* FunctionName : user_init
|
||||||
|
* Description : entry of user application, init user function here
|
||||||
|
* Parameters : none
|
||||||
|
* Returns : none
|
||||||
|
*******************************************************************************/
|
||||||
|
void user_init(void)
|
||||||
|
{
|
||||||
|
printf("SDK version:%s\n", system_get_sdk_version());
|
||||||
|
|
||||||
|
set_on_station_connect(on_wifi_connect);
|
||||||
|
set_on_station_disconnect(on_wifi_disconnect);
|
||||||
|
init_esp_wifi();
|
||||||
|
stop_wifi_ap();
|
||||||
|
start_wifi_station(SSID, PASSWORD);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user