From 900c43d520180a86eec1dbb2a2c39adb7c61afe0 Mon Sep 17 00:00:00 2001 From: dnc40085 Date: Sun, 26 Apr 2015 20:03:44 -0700 Subject: [PATCH 1/2] Add setphymode and getphymode to wifi module --- app/modules/wifi.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/modules/wifi.c b/app/modules/wifi.c index 635625c6..5b30092a 100644 --- a/app/modules/wifi.c +++ b/app/modules/wifi.c @@ -157,6 +157,29 @@ static int wifi_getmode( lua_State* L ) return 1; } +// Lua: wifi.setphymode(mode) +static int wifi_setphymode( lua_State* L ) +{ + unsigned mode; + + mode = luaL_checkinteger( L, 1 ); + + if ( mode != PHY_MODE_11B && mode != PHY_MODE_11G && mode != PHY_MODE_11N ) + return luaL_error( L, "wrong arg type" ); + wifi_set_phy_mode( (uint8_t)mode); + mode = (unsigned)wifi_get_phy_mode(); + lua_pushinteger( L, mode ); + return 1; +} + +// Lua: wifi.getphymode() +static int wifi_getphymode( lua_State* L ) +{ + unsigned mode; + mode = (unsigned)wifi_get_phy_mode(); + lua_pushinteger( L, mode ); + return 1; +} // Lua: mac = wifi.xx.getmac() static int wifi_getmac( lua_State* L, uint8_t mode ) @@ -524,6 +547,8 @@ const LUA_REG_TYPE wifi_map[] = { { LSTRKEY( "setmode" ), LFUNCVAL( wifi_setmode ) }, { LSTRKEY( "getmode" ), LFUNCVAL( wifi_getmode ) }, + { LSTRKEY( "setphymode" ), LFUNCVAL( wifi_setphymode ) }, + { LSTRKEY( "getphymode" ), LFUNCVAL( wifi_getphymode ) }, { LSTRKEY( "startsmart" ), LFUNCVAL( wifi_start_smart ) }, { LSTRKEY( "stopsmart" ), LFUNCVAL( wifi_exit_smart ) }, { LSTRKEY( "sleeptype" ), LFUNCVAL( wifi_sleeptype ) }, From f4a9de48860b7a02edbee4eebee5375c25127782 Mon Sep 17 00:00:00 2001 From: dnc40085 Date: Wed, 29 Apr 2015 00:06:06 -0700 Subject: [PATCH 2/2] Added comments for setphymode and getphymode functions in wifi module Added constants PHYMODE_B, PHYMODE_G, PHYMODE_N to wifi module --- app/modules/wifi.c | 35 +++++++++++++++++++++++++++++++++-- include/user_interface.h | 5 +++++ 2 files changed, 38 insertions(+), 2 deletions(-) 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,