diff --git a/app/modules/wifi.c b/app/modules/wifi.c index 5b30092a..824638e6 100644 --- a/app/modules/wifi.c +++ b/app/modules/wifi.c @@ -149,6 +149,7 @@ static int wifi_setmode( lua_State* L ) } // Lua: realmode = getmode() + static int wifi_getmode( lua_State* L ) { unsigned mode; @@ -157,7 +158,22 @@ static int wifi_getmode( lua_State* L ) return 1; } -// Lua: wifi.setphymode(mode) +/** + * wifi.setphymode() + * Description: + * Set wifi physical mode(802.11 b/g/n) + * Note: SoftAP only supports 802.11 b/g. + * Syntax: + * wifi.setphymode(mode) + * Parameters: + * mode: + * wifi.PHYMODE_B + * wifi.PHYMODE_G + * wifi.PHYMODE_N + * Returns: + * Current physical mode after setup + */ + static int wifi_setphymode( lua_State* L ) { unsigned mode; @@ -172,7 +188,18 @@ static int wifi_setphymode( lua_State* L ) return 1; } -// Lua: wifi.getphymode() +/** + * wifi.getphymode() + * Description: + * Get wifi physical mode(802.11 b/g/n) + * Syntax: + * wifi.getphymode() + * Parameters: + * nil + * Returns: + * Current physical mode. + * + */ static int wifi_getphymode( lua_State* L ) { unsigned mode; @@ -561,6 +588,10 @@ 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( "NONE_SLEEP" ), LNUMVAL( NONE_SLEEP_T ) }, { LSTRKEY( "LIGHT_SLEEP" ), LNUMVAL( LIGHT_SLEEP_T ) }, { LSTRKEY( "MODEM_SLEEP" ), LNUMVAL( MODEM_SLEEP_T ) }, diff --git a/include/user_interface.h b/include/user_interface.h index 5cce16a4..4212ba94 100644 --- a/include/user_interface.h +++ b/include/user_interface.h @@ -98,6 +98,7 @@ const char *system_get_sdk_version(void); #define SOFTAP_MODE 0x02 #define STATIONAP_MODE 0x03 + typedef enum _auth_mode { AUTH_OPEN = 0, AUTH_WEP, @@ -241,6 +242,10 @@ typedef void (* wifi_promiscuous_cb_t)(uint8 *buf, uint16 len); void wifi_set_promiscuous_rx_cb(wifi_promiscuous_cb_t cb); +#define PHY_MODE_B 0x01 +#define PHY_MODE_G 0x02 +#define PHY_MODE_N 0x03 + enum phy_mode { PHY_MODE_11B = 1, PHY_MODE_11G = 2,