@@ -1971,6 +1971,40 @@ STATIC mp_obj_t wlan_ap_sta_list (mp_obj_t self_in) {
19711971}
19721972STATIC MP_DEFINE_CONST_FUN_OBJ_1 (wlan_ap_sta_list_obj , wlan_ap_sta_list );
19731973
1974+ STATIC mp_obj_t wlan_ap_tcpip_sta_list (mp_obj_t self_in ) {
1975+ STATIC const qstr wlan_sta_ifo_fields [] = {
1976+ MP_QSTR_mac , MP_QSTR_IP
1977+ };
1978+ uint8_t index ;
1979+ wifi_sta_list_t wifi_sta_list ;
1980+ esp_wifi_ap_get_sta_list (& wifi_sta_list );
1981+ tcpip_adapter_sta_list_t sta_list ;
1982+ wlan_obj_t * self = self_in ;
1983+
1984+ mp_obj_t sta_out_list = mp_obj_new_list (0 , NULL );
1985+ /* Check if AP mode is enabled */
1986+ if (self -> mode == WIFI_MODE_AP || self -> mode == WIFI_MODE_APSTA ) {
1987+ tcpip_adapter_get_sta_list (& wifi_sta_list , & sta_list );
1988+
1989+ mp_obj_t tuple [2 ];
1990+ for (index = 0 ; index < MAX_AP_CONNECTED_STA && index < sta_list .num ; index ++ )
1991+ {
1992+ tuple [0 ] = mp_obj_new_bytes ((const byte * )sta_list .sta [index ].mac , 6 );
1993+ tuple [1 ] = netutils_format_ipv4_addr ((uint8_t * )& sta_list .sta [index ].ip .addr , NETUTILS_BIG );
1994+
1995+ /*insert tuple */
1996+ mp_obj_list_append (sta_out_list , mp_obj_new_attrtuple (wlan_sta_ifo_fields , 2 , tuple ));
1997+ }
1998+ }
1999+ else
2000+ {
2001+ nlr_raise (mp_obj_new_exception_msg (& mp_type_OSError , mpexception_os_request_not_possible ));
2002+ }
2003+
2004+ return sta_out_list ;
2005+ }
2006+ STATIC MP_DEFINE_CONST_FUN_OBJ_1 (wlan_ap_tcpip_sta_list_obj , wlan_ap_tcpip_sta_list );
2007+
19742008STATIC mp_obj_t wlan_joined_ap_info (mp_obj_t self_in )
19752009{
19762010 STATIC const qstr wlan_sta_ifo_fields [] = {
@@ -2654,6 +2688,7 @@ STATIC const mp_map_elem_t wlan_locals_dict_table[] = {
26542688 { MP_OBJ_NEW_QSTR (MP_QSTR_antenna ), (mp_obj_t )& wlan_antenna_obj },
26552689 { MP_OBJ_NEW_QSTR (MP_QSTR_mac ), (mp_obj_t )& wlan_mac_obj },
26562690 { MP_OBJ_NEW_QSTR (MP_QSTR_ap_sta_list ), (mp_obj_t )& wlan_ap_sta_list_obj },
2691+ { MP_OBJ_NEW_QSTR (MP_QSTR_ap_tcpip_sta_list ), (mp_obj_t )& wlan_ap_tcpip_sta_list_obj },
26572692 { MP_OBJ_NEW_QSTR (MP_QSTR_max_tx_power ), (mp_obj_t )& wlan_max_tx_power_obj },
26582693 { MP_OBJ_NEW_QSTR (MP_QSTR_country ), (mp_obj_t )& wlan_country_obj },
26592694 { MP_OBJ_NEW_QSTR (MP_QSTR_joined_ap_info ), (mp_obj_t )& wlan_joined_ap_info_obj },
0 commit comments