summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDaniel Campora <daniel@wipy.io>2015-05-19 00:36:06 +0200
committerDaniel Campora <daniel@wipy.io>2015-05-20 11:44:21 +0200
commit56053c37cf5ffc6cb81e67817d8e77c490ca7e38 (patch)
treedd3ea01d901cdaeb9a940546635464023efd4a02
parent514ba15d6ac5eafd64a9cf4ca9b3c508ff1c407d (diff)
downloadmicropython-56053c37cf5ffc6cb81e67817d8e77c490ca7e38.tar.gz
micropython-56053c37cf5ffc6cb81e67817d8e77c490ca7e38.zip
cc3200: Rewrite WLAN.ifconfig(). Add WLAN.info() and WLAN.connections().
-rw-r--r--cc3200/mods/modwlan.c269
-rw-r--r--cc3200/qstrdefsport.h5
2 files changed, 134 insertions, 140 deletions
diff --git a/cc3200/mods/modwlan.c b/cc3200/mods/modwlan.c
index d0a47d2b25..b05c046a99 100644
--- a/cc3200/mods/modwlan.c
+++ b/cc3200/mods/modwlan.c
@@ -92,11 +92,16 @@ typedef struct _wlan_obj_t {
bool servers_enabled;
#endif
uint8_t security;
- uint8_t mac[SL_MAC_ADDR_LEN];
+
+ // my own name and mac
uint8_t ssid[33];
+ uint8_t mac[SL_MAC_ADDR_LEN];
+
+ // the name and mac of the other device
+ uint8_t ssid_o[33];
uint8_t bssid[6];
- uint8_t staconnected;
+ bool staconnected;
} wlan_obj_t;
@@ -168,7 +173,8 @@ STATIC wlan_obj_t wlan_obj = {
.ssid = {0},
.bssid = {0},
.mac = {0},
- .staconnected = 0
+ .ssid_o = {0},
+ .staconnected = false
};
STATIC const mp_cb_methods_t wlan_cb_methods;
@@ -186,6 +192,7 @@ STATIC void wlan_reenable (SlWlanMode_t mode);
STATIC void wlan_servers_start (void);
STATIC void wlan_servers_stop (void);
STATIC void wlan_get_sl_mac (void);
+STATIC bool wlan_is_connected (void);
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, uint32_t timeout);
STATIC void wlan_lpds_callback_enable (mp_obj_t self_in);
@@ -210,31 +217,32 @@ void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent) {
{
case SL_WLAN_CONNECT_EVENT:
{
- SET_STATUS_BIT(wlan_obj.status, STATUS_BIT_CONNECTION);
-
slWlanConnectAsyncResponse_t *pEventData = &pWlanEvent->EventData.STAandP2PModeWlanConnected;
-
// copy the new connection data
- memcpy(wlan_obj.ssid, pEventData->ssid_name, pEventData->ssid_len);
memcpy(wlan_obj.bssid, pEventData->bssid, SL_BSSID_LENGTH);
+ memcpy(wlan_obj.ssid_o, pEventData->ssid_name, pEventData->ssid_len);
+ wlan_obj.ssid_o[pEventData->ssid_len] = '\0';
+ SET_STATUS_BIT(wlan_obj.status, STATUS_BIT_CONNECTION);
}
break;
case SL_WLAN_DISCONNECT_EVENT:
{
CLR_STATUS_BIT(wlan_obj.status, STATUS_BIT_CONNECTION);
CLR_STATUS_BIT(wlan_obj.status, STATUS_BIT_IP_ACQUIRED);
-
- memset(wlan_obj.ssid, 0, sizeof(wlan_obj.ssid));
- memset(wlan_obj.bssid, 0, sizeof(wlan_obj.bssid));
}
break;
case SL_WLAN_STA_CONNECTED_EVENT:
- wlan_obj.staconnected++;
+ {
+ slPeerInfoAsyncResponse_t *pEventData = &pWlanEvent->EventData.APModeStaConnected;
+ // get the mac address and name of the connected device
+ memcpy(wlan_obj.bssid, pEventData->mac, SL_BSSID_LENGTH);
+ memcpy(wlan_obj.ssid_o, pEventData->go_peer_device_name, pEventData->go_peer_device_name_len);
+ wlan_obj.ssid_o[pEventData->go_peer_device_name_len] = '\0';
+ wlan_obj.staconnected = true;
+ }
break;
case SL_WLAN_STA_DISCONNECTED_EVENT:
- if (wlan_obj.staconnected > 0) {
- wlan_obj.staconnected--;
- }
+ wlan_obj.staconnected = false;
break;
case SL_WLAN_P2P_DEV_FOUND_EVENT:
// TODO
@@ -293,7 +301,6 @@ void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent) {
}
}
-
//*****************************************************************************
//
//! \brief This function handles HTTP server events
@@ -335,7 +342,6 @@ void SimpleLinkGeneralEventHandler(SlDeviceEvent_t *pDevEvent) {
}
}
-
//*****************************************************************************
//
//! This function handles socket events indication
@@ -451,6 +457,7 @@ modwlan_Status_t wlan_sl_enable (SlWlanMode_t mode, const char *ssid, uint8_t ss
(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, (unsigned char *)ssid, ssid_len);
+ wlan_obj.ssid[ssid_len] = '\0';
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";
@@ -545,8 +552,9 @@ STATIC void wlan_initialize_data (void) {
wlan_obj.gateway = 0;
wlan_obj.ip = 0;
wlan_obj.security = SL_SEC_TYPE_OPEN;
- wlan_obj.staconnected = 0;
+ wlan_obj.staconnected = false;
memset(wlan_obj.ssid, 0, sizeof(wlan_obj.ssid));
+ memset(wlan_obj.ssid_o, 0, sizeof(wlan_obj.ssid));
memset(wlan_obj.bssid, 0, sizeof(wlan_obj.bssid));
}
@@ -554,7 +562,7 @@ STATIC void wlan_reenable (SlWlanMode_t mode) {
// stop and start again
sl_LockObjLock (&wlan_LockObj, SL_OS_WAIT_FOREVER);
sl_Stop(SL_STOP_TIMEOUT);
- wlan_initialize_data();
+ wlan_obj.status = 0;
wlan_obj.mode = sl_Start(0, 0, 0);
sl_LockObjUnlock (&wlan_LockObj);
ASSERT (wlan_obj.mode == mode);
@@ -606,6 +614,11 @@ STATIC void wlan_get_sl_mac (void) {
sl_NetCfgGet(SL_MAC_ADDRESS_GET, NULL, &macAddrLen, wlan_obj.mac);
}
+STATIC bool wlan_is_connected (void) {
+ return ((GET_STATUS_BIT(wlan_obj.status, STATUS_BIT_CONNECTION) &&
+ GET_STATUS_BIT(wlan_obj.status, STATUS_BIT_IP_ACQUIRED)) || wlan_obj.staconnected);
+}
+
/// \method init(mode, ssid=myWlan, security=wlan.WPA_WPA2, key=myWlanKey)
///
/// Initialise the UART bus with the given parameters:
@@ -711,21 +724,6 @@ STATIC mp_obj_t wlan_make_new (mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_k
return &wlan_obj;
}
-STATIC void wlan_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
- wlan_obj_t *self = self_in;
- mp_printf(print, "<WLAN, mode=%u", self->mode);
-
- // only print the bssid if in station mode
- if (self->mode != ROLE_AP && GET_STATUS_BIT(self->status, STATUS_BIT_CONNECTION)) {
- mp_printf(print, ", 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 {
- mp_printf(print, ", ssid=%s", self->ssid);
- }
- mp_printf(print, ", security=%u>", self->security);
-}
-
/// \method connect(ssid, security=OPEN, key=None, bssid=None)
// if security is WPA/WPA2, the key must be a string
/// if security is WEP, the key must be binary
@@ -815,40 +813,84 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_disconnect_obj, wlan_disconnect);
/// Return true if connected to the AP and an IP address has been assigned. Also true if there's any station connected.
/// false otherwise.
STATIC mp_obj_t wlan_isconnected(mp_obj_t self_in) {
- if ((GET_STATUS_BIT(wlan_obj.status, STATUS_BIT_CONNECTION) &&
- GET_STATUS_BIT(wlan_obj.status, STATUS_BIT_IP_ACQUIRED)) || (wlan_obj.staconnected > 0)) {
+ if (wlan_is_connected()) {
return mp_const_true;
}
return mp_const_false;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_isconnected_obj, wlan_isconnected);
-STATIC mp_obj_t wlan_ifconfig (mp_obj_t self_in) {
- STATIC const qstr wlan_ifconfig_fields[] = {
- MP_QSTR_mode, MP_QSTR_ssid,
- MP_QSTR_mac, MP_QSTR_bssid,
- MP_QSTR_ip, MP_QSTR_subnet,
- MP_QSTR_gateway, MP_QSTR_dns
- };
+STATIC mp_obj_t wlan_ifconfig (mp_uint_t n_args, const mp_obj_t *args) {
+ if (n_args == 1) {
+ // get
+ 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);
+
+ mp_obj_t ifconfig[4] = {
+ netutils_format_ipv4_addr((uint8_t *)&ipV4.ipV4, NETUTILS_LITTLE),
+ netutils_format_ipv4_addr((uint8_t *)&ipV4.ipV4Mask, NETUTILS_LITTLE),
+ netutils_format_ipv4_addr((uint8_t *)&ipV4.ipV4Gateway, NETUTILS_LITTLE),
+ netutils_format_ipv4_addr((uint8_t *)&ipV4.ipV4DnsServer, NETUTILS_LITTLE)
+ };
+ return mp_obj_new_tuple(4, ifconfig);
+ }
+ else {
+ if (mp_obj_get_type(args[1]) == &mp_type_tuple) {
+ // set a static ip
+ mp_obj_t *items;
+ mp_obj_get_array_fixed_n(args[1], 4, &items);
- 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);
-
- mp_obj_t ifconfig[8];
- ifconfig[0] = mp_obj_new_int(wlan_obj.mode);
- ifconfig[1] = mp_obj_new_str((const char *)wlan_obj.ssid, strlen((const char *)wlan_obj.ssid), false);
- ifconfig[2] = mp_obj_new_bytes((const byte *)wlan_obj.bssid, SL_BSSID_LENGTH);
- ifconfig[3] = mp_obj_new_bytes((const byte *)wlan_obj.mac, SL_BSSID_LENGTH);
- ifconfig[4] = netutils_format_ipv4_addr((uint8_t *)&wlan_obj.ip, NETUTILS_LITTLE);
- ifconfig[5] = netutils_format_ipv4_addr((uint8_t *)&ipV4.ipV4Mask, NETUTILS_LITTLE);
- ifconfig[6] = netutils_format_ipv4_addr((uint8_t *)&wlan_obj.gateway, NETUTILS_LITTLE);
- ifconfig[7] = netutils_format_ipv4_addr((uint8_t *)&wlan_obj.dns, NETUTILS_LITTLE);
-
- return mp_obj_new_attrtuple(wlan_ifconfig_fields, 8, ifconfig);
+ SlNetCfgIpV4Args_t ipV4;
+ netutils_parse_ipv4_addr(items[0], (uint8_t *)&ipV4.ipV4, NETUTILS_LITTLE);
+ netutils_parse_ipv4_addr(items[1], (uint8_t *)&ipV4.ipV4Mask, NETUTILS_LITTLE);
+ netutils_parse_ipv4_addr(items[2], (uint8_t *)&ipV4.ipV4Gateway, NETUTILS_LITTLE);
+ netutils_parse_ipv4_addr(items[3], (uint8_t *)&ipV4.ipV4DnsServer, NETUTILS_LITTLE);
+
+ // stop the servers
+ wlan_servers_stop();
+ if (wlan_obj.mode == ROLE_AP) {
+ ASSERT_ON_ERROR(sl_NetCfgSet(SL_IPV4_AP_P2P_GO_STATIC_ENABLE, IPCONFIG_MODE_ENABLE_IPV4, sizeof(SlNetCfgIpV4Args_t), (_u8 *)&ipV4));
+ // stop and start again
+ wlan_reenable(wlan_obj.mode);
+
+ SlNetAppDhcpServerBasicOpt_t dhcpParams;
+ dhcpParams.lease_time = 4096; // lease time (in seconds) of the IP Address
+ dhcpParams.ipv4_addr_start = ipV4.ipV4 + 1; // first IP Address for allocation.
+ dhcpParams.ipv4_addr_last = (ipV4.ipV4 & 0xFFFFFF00) + 254; // last IP Address for allocation.
+ ASSERT_ON_ERROR(sl_NetAppStop(SL_NET_APP_DHCP_SERVER_ID)); // stop DHCP server before settings
+ ASSERT_ON_ERROR(sl_NetAppSet(SL_NET_APP_DHCP_SERVER_ID, NETAPP_SET_DHCP_SRV_BASIC_OPT,
+ sizeof(SlNetAppDhcpServerBasicOpt_t), (_u8* )&dhcpParams)); // set parameters
+ ASSERT_ON_ERROR(sl_NetAppStart(SL_NET_APP_DHCP_SERVER_ID)); // start DHCP server with new settings
+ }
+ else {
+ ASSERT_ON_ERROR(sl_NetCfgSet(SL_IPV4_STA_P2P_CL_STATIC_ENABLE, IPCONFIG_MODE_ENABLE_IPV4, sizeof(SlNetCfgIpV4Args_t), (_u8 *)&ipV4));
+ }
+ // re-enable WLAN and start the servers again
+ wlan_reenable (wlan_obj.mode);
+ wlan_servers_start();
+ }
+ else {
+ // check for the correct string
+ const char *mode = mp_obj_str_get_str(args[1]);
+ if (strcmp("dhcp", mode)) {
+ nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, mpexception_value_invalid_arguments));
+ }
+
+ // only if we are not in AP mode
+ if (wlan_obj.mode != ROLE_AP) {
+ _u8 val = 1;
+ wlan_servers_stop();
+ sl_NetCfgSet(SL_IPV4_STA_P2P_CL_DHCP_ENABLE, IPCONFIG_MODE_ENABLE_IPV4, 1, &val);
+ wlan_reenable (wlan_obj.mode);
+ wlan_servers_start();
+ }
+ }
+ return mp_const_none;
+ }
}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_ifconfig_obj, wlan_ifconfig);
+STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(wlan_ifconfig_obj, 1, 2, wlan_ifconfig);
#if MICROPY_PORT_WLAN_URN
STATIC mp_obj_t wlan_urn (uint n_args, const mp_obj_t *args) {
@@ -892,8 +934,8 @@ STATIC mp_obj_t wlan_scan(mp_obj_t self_in) {
};
Sl_WlanNetworkEntry_t wlanEntry;
+ mp_obj_t nets = mp_obj_new_list(0, NULL);
uint8_t _index = 0;
- mp_obj_t nets = NULL;
// trigger a new network scan
uint32_t scanSeconds = MODWLAN_SCAN_PERIOD_S;
@@ -907,12 +949,8 @@ STATIC mp_obj_t wlan_scan(mp_obj_t self_in) {
break;
}
- if (_index == 1) {
- // initialize the list
- nets = mp_obj_new_list(0, NULL);
- }
// we must skip any duplicated results
- else if (!wlan_scan_result_is_unique(nets, wlanEntry.bssid)) {
+ if (!wlan_scan_result_is_unique(nets, wlanEntry.bssid)) {
continue;
}
@@ -932,7 +970,7 @@ STATIC mp_obj_t wlan_scan(mp_obj_t self_in) {
} while (_index < MODWLAN_SL_MAX_NETWORKS);
- return (nets != NULL) ? nets : mp_const_none;
+ return nets;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_scan_obj, wlan_scan);
@@ -963,75 +1001,34 @@ STATIC mp_obj_t wlan_callback (mp_uint_t n_args, const mp_obj_t *pos_args, mp_ma
}
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(wlan_callback_obj, 1, wlan_callback);
-/// \method config_ip(mode, *, ip='192.168.1.1', subnet='255.255.255.0', gateway='192.168.1.1', dns='8.8.8.8')
-STATIC mp_obj_t wlan_config_ip (mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
- STATIC const mp_arg_t allowed_args[] = {
- { MP_QSTR_mode, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = MODWLAN_IP_MODE_DYNAMIC} },
- { MP_QSTR_ip, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
- { MP_QSTR_subnet, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
- { MP_QSTR_gateway, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
- { MP_QSTR_dns, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
- };
-
- // parse args
- mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
- mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
-
- if (args[0].u_int == MODWLAN_IP_MODE_DYNAMIC) {
- // only mode must be given
- if (args[1].u_obj || args[2].u_obj || args[3].u_obj || args[4].u_obj) {
- nlr_raise(mp_obj_new_exception_msg(&mp_type_TypeError, mpexception_num_type_invalid_arguments));
- }
-
- wlan_servers_stop();
-
- // nothing to do if we are an access point
- if (wlan_obj.mode != ROLE_AP) {
- _u8 val = 1;
- sl_NetCfgSet(SL_IPV4_STA_P2P_CL_DHCP_ENABLE, IPCONFIG_MODE_ENABLE_IPV4, 1, &val);
- wlan_reenable (wlan_obj.mode);
- }
- }
- else {
- // we need all arguments at this point
- if (!args[1].u_obj || !args[2].u_obj || !args[3].u_obj || !args[4].u_obj) {
- nlr_raise(mp_obj_new_exception_msg(&mp_type_TypeError, mpexception_num_type_invalid_arguments));
- }
-
- SlNetCfgIpV4Args_t ipV4;
- netutils_parse_ipv4_addr(args[1].u_obj, (uint8_t *)&ipV4.ipV4, NETUTILS_LITTLE);
- netutils_parse_ipv4_addr(args[2].u_obj, (uint8_t *)&ipV4.ipV4Mask, NETUTILS_LITTLE);
- netutils_parse_ipv4_addr(args[3].u_obj, (uint8_t *)&ipV4.ipV4Gateway, NETUTILS_LITTLE);
- netutils_parse_ipv4_addr(args[4].u_obj, (uint8_t *)&ipV4.ipV4DnsServer, NETUTILS_LITTLE);
-
- wlan_servers_stop();
-
- if (wlan_obj.mode == ROLE_AP) {
- ASSERT_ON_ERROR(sl_NetCfgSet(SL_IPV4_AP_P2P_GO_STATIC_ENABLE, IPCONFIG_MODE_ENABLE_IPV4, sizeof(SlNetCfgIpV4Args_t), (_u8 *)&ipV4));
-
- // stop and start again
- wlan_reenable(wlan_obj.mode);
-
- SlNetAppDhcpServerBasicOpt_t dhcpParams;
- dhcpParams.lease_time = 4096; // lease time (in seconds) of the IP Address
- dhcpParams.ipv4_addr_start = ipV4.ipV4 + 1; // first IP Address for allocation.
- dhcpParams.ipv4_addr_last = (ipV4.ipV4 & 0xFFFFFF00) + 254; // last IP Address for allocation.
- ASSERT_ON_ERROR(sl_NetAppStop(SL_NET_APP_DHCP_SERVER_ID)); // stop DHCP server before settings
- ASSERT_ON_ERROR(sl_NetAppSet(SL_NET_APP_DHCP_SERVER_ID, NETAPP_SET_DHCP_SRV_BASIC_OPT,
- sizeof(SlNetAppDhcpServerBasicOpt_t), (_u8* )&dhcpParams)); // set parameters
- ASSERT_ON_ERROR(sl_NetAppStart(SL_NET_APP_DHCP_SERVER_ID)); // start DHCP server with new settings
- }
- else {
- ASSERT_ON_ERROR(sl_NetCfgSet(SL_IPV4_STA_P2P_CL_STATIC_ENABLE, IPCONFIG_MODE_ENABLE_IPV4, sizeof(SlNetCfgIpV4Args_t), (_u8 *)&ipV4));
- }
- wlan_reenable (wlan_obj.mode);
+/// \method info()
+/// returns (mode, security, ssid/name, mac)
+STATIC mp_obj_t wlan_info (mp_obj_t self_in) {
+ mp_obj_t info[4];
+ info[0] = mp_obj_new_int(wlan_obj.mode);
+ info[1] = mp_obj_new_int(wlan_obj.security);
+ info[2] = wlan_obj.mode != ROLE_STA ?
+ mp_obj_new_str((const char *)wlan_obj.ssid, strlen((const char *)wlan_obj.ssid), false) : MP_OBJ_NEW_QSTR(MP_QSTR_);
+ info[3] = mp_obj_new_bytes((const byte *)wlan_obj.mac, SL_BSSID_LENGTH);
+ return mp_obj_new_tuple(MP_ARRAY_SIZE(info), info);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_info_obj, wlan_info);
+
+/// \method connections()
+/// returns (ssid/name, bssi), name is the P2P name if in this mode
+STATIC mp_obj_t wlan_connections (mp_obj_t self_in) {
+ mp_obj_t device[2];
+ mp_obj_t connections = mp_obj_new_list(0, NULL);
+
+ if (wlan_is_connected()) {
+ device[0] = mp_obj_new_str((const char *)wlan_obj.ssid_o, strlen((const char *)wlan_obj.ssid_o), false);
+ device[1] = mp_obj_new_bytes((const byte *)wlan_obj.bssid, SL_BSSID_LENGTH);
+ // add the device to the list
+ mp_obj_list_append(connections, mp_obj_new_tuple(MP_ARRAY_SIZE(device), device));
}
-
- wlan_servers_start();
-
- return mp_const_none;
+ return connections;
}
-STATIC MP_DEFINE_CONST_FUN_OBJ_KW(wlan_config_ip_obj, 1, wlan_config_ip);
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_connections_obj, wlan_connections);
STATIC const mp_map_elem_t wlan_locals_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_connect), (mp_obj_t)&wlan_connect_obj },
@@ -1039,11 +1036,12 @@ STATIC const mp_map_elem_t wlan_locals_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_disconnect), (mp_obj_t)&wlan_disconnect_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_info), (mp_obj_t)&wlan_info_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_connections), (mp_obj_t)&wlan_connections_obj },
#if MICROPY_PORT_WLAN_URN
{ MP_OBJ_NEW_QSTR(MP_QSTR_urn), (mp_obj_t)&wlan_urn_obj },
#endif
{ MP_OBJ_NEW_QSTR(MP_QSTR_callback), (mp_obj_t)&wlan_callback_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_config_ip), (mp_obj_t)&wlan_config_ip_obj },
// class constants
{ MP_OBJ_NEW_QSTR(MP_QSTR_OPEN), MP_OBJ_NEW_SMALL_INT(SL_SEC_TYPE_OPEN) },
@@ -1055,8 +1053,6 @@ STATIC const mp_map_elem_t wlan_locals_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_STA), MP_OBJ_NEW_SMALL_INT(ROLE_STA) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_AP), MP_OBJ_NEW_SMALL_INT(ROLE_AP) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_P2P), MP_OBJ_NEW_SMALL_INT(ROLE_P2P) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_DYNAMIC), MP_OBJ_NEW_SMALL_INT(MODWLAN_IP_MODE_DYNAMIC) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_STATIC), MP_OBJ_NEW_SMALL_INT(MODWLAN_IP_MODE_STATIC) },
};
STATIC MP_DEFINE_CONST_DICT(wlan_locals_dict, wlan_locals_dict_table);
@@ -1324,7 +1320,6 @@ const mod_network_nic_type_t mod_network_nic_type_wlan = {
.base = {
{ &mp_type_type },
.name = MP_QSTR_WLAN,
- .print = wlan_print,
.make_new = wlan_make_new,
.locals_dict = (mp_obj_t)&wlan_locals_dict,
},
diff --git a/cc3200/qstrdefsport.h b/cc3200/qstrdefsport.h
index bb60a88c43..1ef146f158 100644
--- a/cc3200/qstrdefsport.h
+++ b/cc3200/qstrdefsport.h
@@ -251,9 +251,10 @@ Q(disconnect)
Q(channel)
Q(rssi)
Q(ifconfig)
+Q(info)
+Q(connections)
Q(urn)
Q(mode)
-Q(config_ip)
Q(ip)
Q(subnet)
Q(gateway)
@@ -268,8 +269,6 @@ Q(WPA_WPA2)
Q(WPA_ENT)
Q(WPS_PBC)
Q(WPS_PIN)
-Q(DYNAMIC)
-Q(STATIC)
// for WDT class
Q(WDT)