diff --git a/app/modules/wifi.c b/app/modules/wifi.c index 9f4450f1..9444d1ab 100644 --- a/app/modules/wifi.c +++ b/app/modules/wifi.c @@ -28,12 +28,18 @@ static uint8 prev_wifi_status=0; #else static lua_State* smart_L = NULL; #endif -static void wifi_smart_succeed_cb(void *arg){ +static void wifi_smart_succeed_cb(sc_status status, void *pdata){ NODE_DBG("wifi_smart_succeed_cb is called.\n"); + if (status == SC_STATUS_LINK_OVER) + { + smartconfig_stop(); + return; + } + #if defined( NODE_SMART_OLDSTYLE ) - if( !arg ) + if (status != SC_STATUS_LINK || !pdata) return; if(wifi_smart_succeed == LUA_NOREF) return; @@ -44,10 +50,10 @@ static void wifi_smart_succeed_cb(void *arg){ #else - if( !arg ) + if (status != SC_STATUS_LINK || !pdata) return; - struct station_config *sta_conf = arg; + struct station_config *sta_conf = pdata; wifi_station_set_config(sta_conf); wifi_station_disconnect(); wifi_station_connect(); @@ -63,7 +69,6 @@ static void wifi_smart_succeed_cb(void *arg){ luaL_unref(smart_L, LUA_REGISTRYINDEX, wifi_smart_succeed); wifi_smart_succeed = LUA_NOREF; } - smartconfig_stop(); #endif // defined( NODE_SMART_OLDSTYLE ) } @@ -195,7 +200,8 @@ static int wifi_start_smart( lua_State* L ) if ( smart_type > 1 ) return luaL_error( L, "wrong arg range" ); - smartconfig_start(smart_type, wifi_smart_succeed_cb); + smartconfig_set_type(smart_type); + smartconfig_start(wifi_smart_succeed_cb); #endif // defined( NODE_SMART_OLDSTYLE ) @@ -333,7 +339,7 @@ static int wifi_setmac( lua_State* L, uint8_t mode ) if(len!=17) return luaL_error( L, "wrong arg type" ); - os_str2macaddr(mac, macaddr); + ets_str2macaddr(mac, macaddr); lua_pushboolean(L,wifi_set_macaddr(mode, (uint8 *)mac)); return 1; } @@ -591,7 +597,7 @@ static int wifi_station_config( lua_State* L ) if (ml!=17) return luaL_error( L, "MAC:FF:FF:FF:FF:FF:FF" ); c_memset(sta_conf.bssid, 0, 6); - os_str2macaddr(sta_conf.bssid, macaddr); + ets_str2macaddr(sta_conf.bssid, macaddr); sta_conf.bssid_set = 1; } else @@ -743,7 +749,7 @@ static int wifi_station_listap( lua_State* L ) if(len!=17) return luaL_error( L, "bssid: FF:FF:FF:FF:FF:FF" ); c_memset(bssid, 0, 6); - os_str2macaddr(bssid, macaddr); + ets_str2macaddr(bssid, macaddr); scan_cfg.bssid=bssid; NODE_DBG(MACSTR, MAC2STR(scan_cfg.bssid)); NODE_DBG("\n"); @@ -1229,7 +1235,7 @@ static int wifi_ap_dhcp_config( lua_State* L ) if (ip == 0) return luaL_error( L, "wrong arg type" ); - lease.start_ip = ip; + lease.start_ip.addr = ip; NODE_DBG(IPSTR, IP2STR(&lease.start_ip)); NODE_DBG("\n"); @@ -1335,9 +1341,9 @@ const LUA_REG_TYPE wifi_map[] = { LSTRKEY( "SOFTAP" ), LNUMVAL( SOFTAP_MODE ) }, { LSTRKEY( "STATIONAP" ), LNUMVAL( STATIONAP_MODE ) }, - { LSTRKEY( "PHYMODE_B" ), LNUMVAL( PHY_MODE_B ) }, - { LSTRKEY( "PHYMODE_G" ), LNUMVAL( PHY_MODE_G ) }, - { LSTRKEY( "PHYMODE_N" ), LNUMVAL( PHY_MODE_N ) }, + { LSTRKEY( "PHYMODE_B" ), LNUMVAL( PHY_MODE_11B ) }, + { LSTRKEY( "PHYMODE_G" ), LNUMVAL( PHY_MODE_11G ) }, + { LSTRKEY( "PHYMODE_N" ), LNUMVAL( PHY_MODE_11N ) }, { LSTRKEY( "NONE_SLEEP" ), LNUMVAL( NONE_SLEEP_T ) }, { LSTRKEY( "LIGHT_SLEEP" ), LNUMVAL( LIGHT_SLEEP_T ) },