Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
88b7f52e
Commit
88b7f52e
authored
Feb 23, 2015
by
danicampora
Browse files
cc3200: Replace WLAN.get_ip() with WLAN.ifconfig().
Also change other methods' names to make them consistent.
parent
626ee90c
Changes
5
Hide whitespace changes
Inline
Side-by-side
cc3200/mods/modpyb.c
View file @
88b7f52e
...
...
@@ -77,8 +77,8 @@ extern OsiTaskHandle xSimpleLinkSpawnTaskHndl;
/// button.
STATIC
mp_obj_t
pyb_hard_reset
(
void
)
{
// disable wlan services
wlan_servers
_stop
();
wlan_s
l_disable
();
wlan_
stop_
servers
();
wlan_s
top
();
// perform a SoC reset
PRCMSOCReset
();
return
mp_const_none
;
...
...
cc3200/mods/modwlan.c
View file @
88b7f52e
...
...
@@ -78,8 +78,9 @@ typedef struct _wlan_obj_t {
mp_obj_base_t
base
;
SlWlanMode_t
mode
;
uint32_t
status
;
uint8_t
macAddr
[
SL_MAC_ADDR_LEN
];
uint8_t
ssid_name
[
33
];
uint8_t
security
;
uint8_t
mac
[
SL_MAC_ADDR_LEN
];
uint8_t
ssid
[
33
];
uint8_t
bssid
[
6
];
// IPVv4 data
...
...
@@ -186,7 +187,7 @@ void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent)
slWlanConnectAsyncResponse_t
*
pEventData
=
&
pWlanEvent
->
EventData
.
STAandP2PModeWlanConnected
;
// Copy new connection SSID and BSSID to global parameters
memcpy
(
wlan_obj
.
ssid
_name
,
pEventData
->
ssid_name
,
pEventData
->
ssid_len
);
memcpy
(
wlan_obj
.
ssid
,
pEventData
->
ssid_name
,
pEventData
->
ssid_len
);
memcpy
(
wlan_obj
.
bssid
,
pEventData
->
bssid
,
SL_BSSID_LENGTH
);
}
break
;
...
...
@@ -207,7 +208,7 @@ void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent)
else
{
}
memset
(
wlan_obj
.
ssid
_name
,
0
,
sizeof
(
wlan_obj
.
ssid
_name
));
memset
(
wlan_obj
.
ssid
,
0
,
sizeof
(
wlan_obj
.
ssid
));
memset
(
wlan_obj
.
bssid
,
0
,
sizeof
(
wlan_obj
.
bssid
));
}
break
;
...
...
@@ -253,7 +254,7 @@ void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent)
// Ip Acquired Event Data
pEventData
=
&
pNetAppEvent
->
EventData
.
ipAcquiredV4
;
// Get
the IP addresse
s
// Get
ip, gateway and dn
s
wlan_obj
.
gateway
=
ntohl
(
pEventData
->
gateway
);
wlan_obj
.
ip
=
ntohl
(
pEventData
->
ip
);
wlan_obj
.
dns
=
ntohl
(
pEventData
->
dns
);
...
...
@@ -348,7 +349,7 @@ void wlan_init0 (void) {
// Set the mode to an invalid one
wlan_obj
.
mode
=
-
1
;
wlan_obj
.
base
.
type
=
NULL
;
memset
(
wlan_obj
.
mac
Addr
,
0
,
SL_MAC_ADDR_LEN
);
memset
(
wlan_obj
.
mac
,
0
,
SL_MAC_ADDR_LEN
);
ASSERT
(
OSI_OK
==
sl_LockObjCreate
(
&
wlan_LockObj
,
"WlanLock"
));
wlan_initialize_data
();
}
...
...
@@ -398,6 +399,7 @@ modwlan_Status_t wlan_sl_enable (SlWlanMode_t mode, const char *ssid, uint8_t ss
// clear wlan data after checking any of the status flags
wlan_initialize_data
();
wlan_obj
.
security
=
sec
;
// Set connection policy to Auto + SmartConfig (Device's default connection policy)
ASSERT_ON_ERROR
(
sl_WlanPolicySet
(
SL_POLICY_CONNECTION
,
SL_CONNECTION_POLICY
(
1
,
0
,
0
,
0
,
1
),
NULL
,
0
));
...
...
@@ -434,7 +436,7 @@ modwlan_Status_t wlan_sl_enable (SlWlanMode_t mode, const char *ssid, uint8_t ss
ASSERT_ON_ERROR
(
sl_WlanSet
(
SL_WLAN_CFG_GENERAL_PARAM_ID
,
WLAN_GENERAL_PARAM_OPT_AP_TX_POWER
,
sizeof
(
ucPower
),
(
unsigned
char
*
)
&
ucPower
));
ASSERT_ON_ERROR
(
sl_WlanSet
(
SL_WLAN_CFG_AP_ID
,
WLAN_AP_OPT_SSID
,
ssid_len
,
(
unsigned
char
*
)
ssid
));
memcpy
(
wlan_obj
.
ssid
_name
,
(
unsigned
char
*
)
ssid
,
ssid_len
);
memcpy
(
wlan_obj
.
ssid
,
(
unsigned
char
*
)
ssid
,
ssid_len
);
ASSERT_ON_ERROR
(
sl_WlanSet
(
SL_WLAN_CFG_AP_ID
,
WLAN_AP_OPT_SECURITY_TYPE
,
sizeof
(
uint8_t
),
&
sec
));
ASSERT_ON_ERROR
(
sl_WlanSet
(
SL_WLAN_CFG_AP_ID
,
WLAN_AP_OPT_PASSWORD
,
key_len
,
(
unsigned
char
*
)
key
));
_u8
*
country
=
(
_u8
*
)
"EU"
;
...
...
@@ -491,7 +493,8 @@ void wlan_update(void) {
#endif
}
void
wlan_sl_disable
(
void
)
{
// call this function to disable the complete WLAN subsystem in order to save power
void
wlan_stop
(
void
)
{
if
(
wlan_obj
.
mode
>=
0
)
{
sl_LockObjLock
(
&
wlan_LockObj
,
SL_OS_WAIT_FOREVER
);
wlan_obj
.
mode
=
-
1
;
...
...
@@ -499,13 +502,22 @@ void wlan_sl_disable (void) {
}
}
// cal this function to reenable the WLAN susbsystem after a previous call to wlan_sl_disable()
// WLAN will remain configured as it was before being disabled
void
wlan_start
(
void
)
{
if
(
wlan_obj
.
mode
<
0
)
{
wlan_obj
.
mode
=
sl_Start
(
0
,
0
,
0
);
sl_LockObjUnlock
(
&
wlan_LockObj
);
}
}
SlWlanMode_t
wlan_get_mode
(
void
)
{
return
wlan_obj
.
mode
;
}
void
wlan_get_mac
(
uint8_t
*
macAddress
)
{
if
(
macAddress
)
{
memcpy
(
macAddress
,
wlan_obj
.
mac
Addr
,
SL_MAC_ADDR_LEN
);
memcpy
(
macAddress
,
wlan_obj
.
mac
,
SL_MAC_ADDR_LEN
);
}
}
...
...
@@ -519,7 +531,7 @@ void wlan_set_pm_policy (uint8_t policy) {
ASSERT_ON_ERROR
(
sl_WlanPolicySet
(
SL_POLICY_PM
,
policy
,
NULL
,
0
));
}
void
wlan_servers
_stop
(
void
)
{
void
wlan_
stop_
servers
(
void
)
{
servers_disable
();
do
{
HAL_Delay
(
5
);
...
...
@@ -535,7 +547,8 @@ STATIC void wlan_initialize_data (void) {
wlan_obj
.
dns
=
0
;
wlan_obj
.
gateway
=
0
;
wlan_obj
.
ip
=
0
;
memset
(
wlan_obj
.
ssid_name
,
0
,
sizeof
(
wlan_obj
.
ssid_name
));
wlan_obj
.
security
=
SL_SEC_TYPE_OPEN
;
memset
(
wlan_obj
.
ssid
,
0
,
sizeof
(
wlan_obj
.
ssid
));
memset
(
wlan_obj
.
bssid
,
0
,
sizeof
(
wlan_obj
.
bssid
));
}
...
...
@@ -549,8 +562,8 @@ STATIC void wlan_reenable (SlWlanMode_t mode) {
ASSERT
(
wlan_obj
.
mode
==
mode
);
}
STATIC
modwlan_Status_t
wlan_do_connect
(
const
char
*
ssid
,
uint32_t
ssid_len
,
const
char
*
bssid
,
uint8_t
sec
,
const
char
*
key
,
uint32_t
key_len
)
{
STATIC
modwlan_Status_t
wlan_do_connect
(
const
char
*
ssid
,
uint32_t
ssid_len
,
const
char
*
bssid
,
uint8_t
sec
,
const
char
*
key
,
uint32_t
key_len
)
{
SlSecParams_t
secParams
;
secParams
.
Key
=
(
_i8
*
)
key
;
...
...
@@ -580,7 +593,7 @@ STATIC modwlan_Status_t wlan_do_connect (const char* ssid, uint32_t ssid_len, co
STATIC
void
wlan_get_sl_mac
(
void
)
{
// Get the MAC address
uint8_t
macAddrLen
=
SL_MAC_ADDR_LEN
;
sl_NetCfgGet
(
SL_MAC_ADDRESS_GET
,
NULL
,
&
macAddrLen
,
wlan_obj
.
mac
Addr
);
sl_NetCfgGet
(
SL_MAC_ADDRESS_GET
,
NULL
,
&
macAddrLen
,
wlan_obj
.
mac
);
}
/// \method init(mode, ssid=myWlan, security=wlan.WPA_WPA2, key=myWlanKey)
...
...
@@ -647,7 +660,7 @@ STATIC mp_obj_t wlan_make_new (mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_k
// Stop all other processes using the wlan engine
bool
servers_enabled
;
if
(
(
servers_enabled
=
servers_are_enabled
())
)
{
wlan_servers
_stop
();
wlan_
stop_
servers
();
}
if
(
mode
==
ROLE_AP
)
{
// start the peripheral
...
...
@@ -682,34 +695,17 @@ STATIC mp_obj_t wlan_make_new (mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_k
STATIC
void
wlan_print
(
void
(
*
print
)(
void
*
env
,
const
char
*
fmt
,
...),
void
*
env
,
mp_obj_t
self_in
,
mp_print_kind_t
kind
)
{
wlan_obj_t
*
self
=
self_in
;
print
(
env
,
"wlan(mode=%u, status=%u"
,
self
->
mode
,
self
->
status
);
print
(
env
,
", mac=%02x:%02x:%02x:%02x:%02x:%02x"
,
self
->
macAddr
[
0
],
self
->
macAddr
[
1
],
self
->
macAddr
[
2
],
self
->
macAddr
[
3
],
self
->
macAddr
[
4
],
self
->
macAddr
[
5
]);
// Only print the ssid if in station or ap mode
if
(
self
->
mode
==
ROLE_STA
||
self
->
mode
==
ROLE_AP
)
{
print
(
env
,
", ssid=%s"
,
self
->
ssid_name
);
// Only print the bssid if in station mode
if
(
self
->
mode
==
ROLE_STA
)
{
print
(
env
,
", bssid=%02x:%02x:%02x:%02x:%02x:%02x"
,
self
->
bssid
[
0
],
self
->
bssid
[
1
],
self
->
bssid
[
2
],
self
->
bssid
[
3
],
self
->
bssid
[
4
],
self
->
bssid
[
5
]);
}
print
(
env
,
"<WLAN mode=%u"
,
self
->
mode
);
char
ip_str
[
IPV4_ADDR_STR_LEN_MAX
];
uint8_t
*
ip
=
(
uint8_t
*
)
&
self
->
ip
;
snprintf
(
ip_str
,
16
,
"%u.%u.%u.%u"
,
ip
[
0
],
ip
[
1
],
ip
[
2
],
ip
[
3
]);
print
(
env
,
", ip=%s"
,
ip_str
);
ip
=
(
uint8_t
*
)
&
self
->
gateway
;
snprintf
(
ip_str
,
16
,
"%u.%u.%u.%u"
,
ip
[
0
],
ip
[
1
],
ip
[
2
],
ip
[
3
]);
print
(
env
,
", gateway=%s"
,
ip_str
);
ip
=
(
uint8_t
*
)
&
self
->
dns
;
snprintf
(
ip_str
,
16
,
"%u.%u.%u.%u"
,
ip
[
0
],
ip
[
1
],
ip
[
2
],
ip
[
3
]);
print
(
env
,
", dns=%s)"
,
ip_str
);
// only print the bssid if in station mode
if
(
self
->
mode
!=
ROLE_AP
&&
GET_STATUS_BIT
(
self
->
status
,
STATUS_BIT_CONNECTION
))
{
print
(
env
,
", connected to: ssid=%s, bssid=%02x:%02x:%02x:%02x:%02x:%02x"
,
self
->
ssid
,
self
->
bssid
[
0
],
self
->
bssid
[
1
],
self
->
bssid
[
2
],
self
->
bssid
[
3
],
self
->
bssid
[
4
],
self
->
bssid
[
5
]);
}
else
{
print
(
env
,
"
)"
);
print
(
env
,
"
, ssid=%s"
,
self
->
ssid
);
}
print
(
env
,
", security=%u>"
,
self
->
security
);
}
/// \method mode()
...
...
@@ -803,6 +799,7 @@ STATIC mp_obj_t wlan_connect(mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_
else
if
(
status
==
MODWLAN_ERROR_INVALID_PARAMS
)
{
nlr_raise
(
mp_obj_new_exception_msg
(
&
mp_type_ValueError
,
mpexception_value_invalid_arguments
));
}
wlan_obj
.
security
=
sec
;
return
mp_const_none
;
}
...
...
@@ -829,20 +826,41 @@ STATIC mp_obj_t wlan_isconnected(mp_obj_t self_in) {
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
wlan_isconnected_obj
,
wlan_isconnected
);
/// \method getip()
/// return the ip address or None if not connected
///
STATIC
mp_obj_t
wlan_getip
(
mp_obj_t
self_in
)
{
uint32_t
ip
;
wlan_get_ip
(
&
ip
);
if
(
ip
)
{
return
mod_network_format_ipv4_addr
((
uint8_t
*
)
&
ip
);
STATIC
mp_obj_t
wlan_ifconfig
(
mp_obj_t
self_in
)
{
unsigned
char
len
=
sizeof
(
SlNetCfgIpV4Args_t
);
unsigned
char
dhcpIsOn
;
SlNetCfgIpV4Args_t
ipV4
;
sl_NetCfgGet
(
SL_IPV4_STA_P2P_CL_GET_INFO
,
&
dhcpIsOn
,
&
len
,
(
uint8_t
*
)
&
ipV4
);
// shift byte order
ipV4
.
ipV4Mask
=
ntohl
(
ipV4
.
ipV4Mask
);
mp_obj_t
ifconfig
=
mp_obj_new_dict
(
0
);
mp_obj_dict_store
(
ifconfig
,
mp_obj_new_str
(
"ip"
,
strlen
(
"ip"
),
false
),
mod_network_format_ipv4_addr
((
uint8_t
*
)
&
wlan_obj
.
ip
));
mp_obj_dict_store
(
ifconfig
,
mp_obj_new_str
(
"subnet"
,
strlen
(
"subnet"
),
false
),
mod_network_format_ipv4_addr
((
uint8_t
*
)
&
ipV4
.
ipV4Mask
));
mp_obj_dict_store
(
ifconfig
,
mp_obj_new_str
(
"gateway"
,
strlen
(
"gateway"
),
false
),
mod_network_format_ipv4_addr
((
uint8_t
*
)
&
wlan_obj
.
gateway
));
mp_obj_dict_store
(
ifconfig
,
mp_obj_new_str
(
"dns"
,
strlen
(
"dns"
),
false
),
mod_network_format_ipv4_addr
((
uint8_t
*
)
&
wlan_obj
.
dns
));
char
mac_str
[
18
];
mp_uint_t
mac_len
=
snprintf
(
mac_str
,
sizeof
(
mac_str
),
"%02x:%02x:%02x:%02x:%02x:%02x"
,
wlan_obj
.
mac
[
0
],
wlan_obj
.
mac
[
1
],
wlan_obj
.
mac
[
2
],
wlan_obj
.
mac
[
3
],
wlan_obj
.
mac
[
4
],
wlan_obj
.
mac
[
5
]);
mp_obj_dict_store
(
ifconfig
,
mp_obj_new_str
(
"mac"
,
strlen
(
"mac"
),
false
),
mp_obj_new_str
(
mac_str
,
mac_len
,
false
));
char
*
mode_str
;
if
(
wlan_obj
.
mode
==
ROLE_STA
)
{
mode_str
=
"station"
;
}
else
if
(
wlan_obj
.
mode
==
ROLE_AP
)
{
mode_str
=
"ap"
;
}
else
{
return
mp_const_none
;
mode_str
=
"p2p"
;
}
mp_obj_dict_store
(
ifconfig
,
mp_obj_new_str
(
"mode"
,
strlen
(
"mode"
),
false
),
mp_obj_new_str
(
mode_str
,
strlen
(
mode_str
),
false
));
mp_obj_dict_store
(
ifconfig
,
mp_obj_new_str
(
"ssid"
,
strlen
(
"ssid"
),
false
),
mp_obj_new_str
((
const
char
*
)
wlan_obj
.
ssid
,
strlen
((
const
char
*
)
wlan_obj
.
ssid
),
false
));
return
ifconfig
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
wlan_
getip
_obj
,
wlan_
getip
);
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
wlan_
ifconfig
_obj
,
wlan_
ifconfig
);
STATIC
mp_obj_t
wlan_urn
(
uint
n_args
,
const
mp_obj_t
*
args
)
{
char
urn
[
MAX_DEVICE_URN_LEN
];
...
...
@@ -917,15 +935,15 @@ STATIC mp_obj_t wlan_serversstart(mp_obj_t self_in) {
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
wlan_serversstart_obj
,
wlan_serversstart
);
STATIC
mp_obj_t
wlan_serversstop
(
mp_obj_t
self_in
)
{
wlan_servers
_stop
();
wlan_
stop_
servers
();
return
mp_const_none
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
wlan_serversstop_obj
,
wlan_serversstop
);
STATIC
mp_obj_t
wlan_
are
serversenabled
(
mp_obj_t
self_in
)
{
STATIC
mp_obj_t
wlan_serversenabled
(
mp_obj_t
self_in
)
{
return
MP_BOOL
(
servers_are_enabled
());
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
wlan_
are
serversenabled_obj
,
wlan_
are
serversenabled
);
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
wlan_serversenabled_obj
,
wlan_serversenabled
);
STATIC
mp_obj_t
wlan_serversuserpass
(
mp_obj_t
self_in
,
mp_obj_t
user
,
mp_obj_t
pass
)
{
const
char
*
_user
=
mp_obj_str_get_str
(
user
);
...
...
@@ -937,16 +955,16 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_3(wlan_serversuserpass_obj, wlan_serversuserpass)
STATIC
const
mp_map_elem_t
wlan_locals_dict_table
[]
=
{
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_connect
),
(
mp_obj_t
)
&
wlan_connect_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_get
_
mode
),
(
mp_obj_t
)
&
wlan_getmode_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_set
_
pm
),
(
mp_obj_t
)
&
wlan_setpm_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_getmode
),
(
mp_obj_t
)
&
wlan_getmode_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_setpm
),
(
mp_obj_t
)
&
wlan_setpm_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_scan
),
(
mp_obj_t
)
&
wlan_scan_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_disconnect
),
(
mp_obj_t
)
&
wlan_disconnect_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_is
_
connected
),
(
mp_obj_t
)
&
wlan_isconnected_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_
get_ip
),
(
mp_obj_t
)
&
wlan_
getip
_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_isconnected
),
(
mp_obj_t
)
&
wlan_isconnected_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_
ifconfig
),
(
mp_obj_t
)
&
wlan_
ifconfig
_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_urn
),
(
mp_obj_t
)
&
wlan_urn_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_start_servers
),
(
mp_obj_t
)
&
wlan_serversstart_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_stop_servers
),
(
mp_obj_t
)
&
wlan_serversstop_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_
are_
servers_enabled
),
(
mp_obj_t
)
&
wlan_
are
serversenabled_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_servers_enabled
),
(
mp_obj_t
)
&
wlan_serversenabled_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_servers_userpass
),
(
mp_obj_t
)
&
wlan_serversuserpass_obj
},
// class constants
...
...
cc3200/mods/modwlan.h
View file @
88b7f52e
...
...
@@ -36,8 +36,7 @@
/******************************************************************************
DEFINE TYPES
******************************************************************************/
typedef
enum
{
typedef
enum
{
MODWLAN_OK
=
0
,
MODWLAN_ERROR_INVALID_PARAMS
=
-
1
,
MODWLAN_ERROR_TIMEOUT
=
-
2
,
...
...
@@ -56,11 +55,12 @@ extern _SlLockObj_t wlan_LockObj;
extern
void
wlan_init0
(
void
);
extern
modwlan_Status_t
wlan_sl_enable
(
SlWlanMode_t
mode
,
const
char
*
ssid
,
uint8_t
ssid_len
,
uint8_t
sec
,
const
char
*
key
,
uint8_t
key_len
,
uint8_t
channel
);
extern
void
wlan_sl_disable
(
void
);
extern
void
wlan_stop
(
void
);
extern
void
wlan_start
(
void
);
extern
SlWlanMode_t
wlan_get_mode
(
void
);
extern
void
wlan_get_mac
(
uint8_t
*
macAddress
);
extern
void
wlan_get_ip
(
uint32_t
*
ip
);
extern
void
wlan_set_pm_policy
(
uint8_t
policy
);
extern
void
wlan_servers
_stop
(
void
);
extern
void
wlan_
stop_
servers
(
void
);
#endif
/* SIMPLELINKTASK_H_ */
cc3200/mptask.c
View file @
88b7f52e
...
...
@@ -232,8 +232,8 @@ soft_reset_exit:
printf
(
"PYB: soft reboot
\n
"
);
// disable wlan services
wlan_servers
_stop
();
wlan_s
l_disable
();
wlan_
stop_
servers
();
wlan_s
top
();
// wait for all bus transfers to complete
HAL_Delay
(
50
);
...
...
cc3200/qstrdefsport.h
View file @
88b7f52e
...
...
@@ -224,16 +224,16 @@ Q(ssid)
Q
(
bssid
)
Q
(
scan
)
Q
(
connect
)
Q
(
is
_
connected
)
Q
(
isconnected
)
Q
(
disconnect
)
Q
(
get
_
mode
)
Q
(
getmode
)
Q
(
channel
)
Q
(
get_ip
)
Q
(
ifconfig
)
Q
(
urn
)
Q
(
set
_
pm
)
Q
(
setpm
)
Q
(
start_servers
)
Q
(
stop_servers
)
Q
(
are_
servers_enabled
)
Q
(
servers_enabled
)
Q
(
servers_userpass
)
Q
(
STA
)
Q
(
AP
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment