void wlan_fetch_ipconfig(WLanConfig* config) { wiced_ip_address_t addr; wiced_interface_t ifup = WICED_STA_INTERFACE; memset(config, 0, sizeof(*config)); if (wiced_network_is_up(ifup)) { if (wiced_ip_get_ipv4_address(ifup, &addr)==WICED_SUCCESS) setAddress(&addr, config->nw.aucIP); if (wiced_ip_get_netmask(ifup, &addr)==WICED_SUCCESS) setAddress(&addr, config->nw.aucSubnetMask); if (wiced_ip_get_gateway_address(ifup, &addr)==WICED_SUCCESS) setAddress(&addr, config->nw.aucDefaultGateway); } wiced_mac_t my_mac_address; if (wiced_wifi_get_mac_address( &my_mac_address)==WICED_SUCCESS) memcpy(config->nw.uaMacAddr, &my_mac_address, 6); wl_bss_info_t ap_info; wiced_security_t sec; if ( wwd_wifi_get_ap_info( &ap_info, &sec ) == WWD_SUCCESS ) { uint8_t len = std::min(ap_info.SSID_len, uint8_t(32)); memcpy(config->uaSSID, ap_info.SSID, len); config->uaSSID[len] = 0; } // todo DNS and DHCP servers }
static wiced_result_t send_ping( void ) { const uint32_t ping_timeout = 1000; uint32_t elapsed_ms; wiced_result_t status; wiced_ip_address_t ping_target_ip; wiced_ip_get_gateway_address( WICED_STA_INTERFACE, &ping_target_ip ); status = wiced_ping( WICED_STA_INTERFACE, &ping_target_ip, ping_timeout, &elapsed_ms ); if ( status == WICED_SUCCESS ) { WPRINT_APP_INFO(( "Ping Reply %lums\r\n", elapsed_ms )); } else if ( status == WICED_TIMEOUT ) { WPRINT_APP_INFO(( "Ping timeout\r\n" )); } else { WPRINT_APP_INFO(( "Ping error\r\n" )); } return WICED_SUCCESS; }