LOCAL void ICACHE_FLASH_ATTR ping_cb(void* arg, void *pdata) { char digitbuf[16]; struct ping_option *pingopt = (struct ping_option *)arg; struct ping_resp *pingresp = (struct ping_resp *)pdata; if(dhserial_get_mode() == SM_OUTPUT_MODE) { mSent++; if(pingresp->ping_err == 0) { mRecieved++; mTotalDelay += pingresp->resp_time; snprintf(digitbuf, sizeof(digitbuf), "%d", pingresp->bytes); uart_send_str(digitbuf); uart_send_str(" bytes received from "); sprintIp(digitbuf, (const struct ip_addr *)&pingopt->ip); uart_send_str(digitbuf); uart_send_str(" in "); snprintf(digitbuf, sizeof(digitbuf), "%d", pingresp->resp_time); uart_send_str(digitbuf); uart_send_str(" ms, icmp_seq = "); snprintf(digitbuf, sizeof(digitbuf), "%d", mSent); uart_send_line(digitbuf); } else { mLost++; uart_send_str("Request timed out, icmp_seq = "); snprintf(digitbuf, sizeof(digitbuf), "%d", mSent); uart_send_line(digitbuf); } } }
LOCAL void ICACHE_FLASH_ATTR nslookup_res(const char *name, ip_addr_t *ip, void *arg) { char ipstr[16]; if (ip == NULL) { uart_send_line("FAILED"); } else { sprintIp(ipstr, ip); uart_send_str("Host "); uart_send_str(name); uart_send_str(" IP is "); uart_send_line(ipstr); } }
void ICACHE_FLASH_ATTR dhserial_commands_status(const char *args) { uint8 mac[6]; char digitBuff[32]; if(!wifi_get_macaddr(STATION_IF, mac)) { uart_send_line("Failed to get mac address"); } else { struct station_config stationConfig; system_print_meminfo(); if(!wifi_station_get_config(&stationConfig)) { uart_send_line("Could not get station config"); os_memset(&stationConfig, 0, sizeof(stationConfig)); } uart_send_str("Network adapter "); sprintMac(digitBuff, mac); uart_send_str(digitBuff); switch(wifi_station_get_connect_status()) { case STATION_IDLE: uart_send_line(" is in idle"); break; case STATION_CONNECTING: uart_send_str(" is connecting to "); uart_send_line(stationConfig.ssid); break; case STATION_WRONG_PASSWORD: uart_send_str(" has wrong password for "); uart_send_line(stationConfig.ssid); break; case STATION_NO_AP_FOUND: uart_send_str(" can not find AP with SSID "); uart_send_line(stationConfig.ssid); break; case STATION_CONNECT_FAIL: uart_send_str(" has fail while connecting to "); uart_send_line(stationConfig.ssid); break; case STATION_GOT_IP: { uart_send_str(" is connected to "); uart_send_line(stationConfig.ssid); struct ip_info info; if(!wifi_get_ip_info(STATION_IF, &info)) { uart_send_line("Failed to get ip info"); } else { uart_send_str("IP: "); sprintIp(digitBuff, &info.ip); uart_send_str(digitBuff); uart_send_str(", netmask: "); sprintIp(digitBuff, &info.netmask); uart_send_str(digitBuff); uart_send_str(", gateway: "); sprintIp(digitBuff, &info.gw); uart_send_line(digitBuff); } break; } default: uart_send_line("is in unknown state"); break; } uart_send_str("DeviceHive: "); switch(dhconnector_get_state()) { case CS_DISCONNECT: uart_send_line("connection is not established."); break; case CS_GETINFO: uart_send_line("getting info from server."); break; case CS_REGISTER: uart_send_line("registering device."); break; case CS_POLL: uart_send_line("successfully connected to server."); break; default: uart_send_line("unknown state"); break; } } uart_send_str("Free heap size: "); snprintf(digitBuff, sizeof(digitBuff), "%d", system_get_free_heap_size()); uart_send_str(digitBuff); uart_send_line(" bytes."); }
void ICACHE_FLASH_ATTR dhterminal_commands_status(const char *args) { uint8 mac[6]; char digitBuff[32]; struct station_config stationConfig; dhuart_send_str("Network adapter "); if(!wifi_get_macaddr(STATION_IF, mac)) { dhuart_send_str("[Failed to get mac address]"); } else { sprintMac(digitBuff, mac); dhuart_send_str(digitBuff); } if(!wifi_station_get_config(&stationConfig)) { os_memset(&stationConfig, 0, sizeof(stationConfig)); os_strcpy(stationConfig.ssid, "[Can not get SSID]"); } switch(wifi_station_get_connect_status()) { case STATION_IDLE: dhuart_send_line(" is in idle"); break; case STATION_CONNECTING: dhuart_send_str(" is connecting to "); dhuart_send_line(stationConfig.ssid); break; case STATION_WRONG_PASSWORD: dhuart_send_str(" has wrong password for "); dhuart_send_line(stationConfig.ssid); break; case STATION_NO_AP_FOUND: dhuart_send_str(" can not find AP with SSID "); dhuart_send_line(stationConfig.ssid); break; case STATION_CONNECT_FAIL: dhuart_send_str(" has fail while connecting to "); dhuart_send_line(stationConfig.ssid); break; case STATION_GOT_IP: { dhuart_send_str(" is connected to "); dhuart_send_line(stationConfig.ssid); struct ip_info info; if(!wifi_get_ip_info(STATION_IF, &info)) { dhuart_send_line("Failed to get ip info"); } else { dhuart_send_str("IP: "); sprintIp(digitBuff, &info.ip); dhuart_send_str(digitBuff); dhuart_send_str(", netmask: "); sprintIp(digitBuff, &info.netmask); dhuart_send_str(digitBuff); dhuart_send_str(", gateway: "); sprintIp(digitBuff, &info.gw); dhuart_send_line(digitBuff); } break; } default: dhuart_send_line("is in unknown state"); break; } const DHSTATISTIC *stat = dhstatistic_get_statistic(); dhuart_send_str("Wi-Fi disconnect count: "); snprintf(digitBuff, sizeof(digitBuff), "%u", stat->wifiLosts); dhuart_send_line(digitBuff); dhuart_send_str("Bytes received: "); printBytes(digitBuff, stat->bytesReceived); dhuart_send_str(digitBuff); dhuart_send_str(", sent: "); printBytes(digitBuff, stat->bytesSent); dhuart_send_str(digitBuff); dhuart_send_str(", errors: "); snprintf(digitBuff, sizeof(digitBuff), "%u", stat->networkErrors); dhuart_send_line(digitBuff); dhuart_send_str("Httpd requests received: "); snprintf(digitBuff, sizeof(digitBuff), "%u", stat->httpdRequestsCount); dhuart_send_str(digitBuff); dhuart_send_str(", errors: "); snprintf(digitBuff, sizeof(digitBuff), "%u", stat->httpdErrorsCount); dhuart_send_line(digitBuff); dhuart_send_str("DeviceHive: "); switch(dhconnector_get_state()) { case CS_DISCONNECT: dhuart_send_str("connection is not established"); break; case CS_GETINFO: dhuart_send_str("getting info from server"); break; case CS_REGISTER: dhuart_send_str("registering device"); break; case CS_POLL: case CS_CUSTOM: dhuart_send_str("successfully connected to server"); break; default: dhuart_send_str("unknown state"); break; } dhuart_send_str(", errors count: "); snprintf(digitBuff, sizeof(digitBuff), "%u", stat->serverErrors); dhuart_send_line(digitBuff); dhuart_send_str("Responses created/dropped: "); snprintf(digitBuff, sizeof(digitBuff), "%u/%u", stat->responcesTotal, stat->responcesDroppedCount); dhuart_send_str(digitBuff); dhuart_send_str(", notification created/dropped: "); snprintf(digitBuff, sizeof(digitBuff), "%u/%u", stat->notificationsTotal, stat->notificationsDroppedCount); dhuart_send_line(digitBuff); dhuart_send_str("Free heap size: "); snprintf(digitBuff, sizeof(digitBuff), "%d", system_get_free_heap_size()); dhuart_send_str(digitBuff); dhuart_send_str(" bytes"); dhuart_send_str(", request queue size: "); snprintf(digitBuff, sizeof(digitBuff), "%d", dhsender_queue_length()); dhuart_send_line(digitBuff); }