void WifiCreds::connect(int indicator_pin) { if (!_is_eeprom_init){ EEPROM.begin(512); _is_eeprom_init = true; } read_ssid(_ssid); read_password(_password); if (_verbose) { Serial.println(""); Serial.print("Initializing connection to "); Serial.println(_ssid); Serial.println("Send \"ssid password\" to update credentials"); Serial.println(""); } WiFi.begin(_ssid, _password); while (_is_wifi_enabled && WiFi.status() != WL_CONNECTED) { if(indicator_pin >= 0) digitalWrite(indicator_pin, LOW); delay(5); if(indicator_pin >= 0) digitalWrite(indicator_pin, HIGH); if (Serial.available() > 0){ read_from_serial(_ssid, WifiCreds::ssid_max_length); read_from_serial(_password, WifiCreds::password_max_length); if (_verbose) { Serial.println(""); Serial.println("Got new wifi credentials."); Serial.print(" - SSID: "); Serial.println(_ssid); Serial.print(" - Password: "******"."); } if (_verbose) { Serial.println(""); if (_is_wifi_enabled) { Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); WiFi.macAddress(mac); writeHex(mac[5], id, 1, 2); writeHex(mac[4], id, 4, 5); writeHex(mac[3], id, 7, 8); writeHex(mac[2], id, 10, 11); writeHex(mac[1], id, 13, 14); writeHex(mac[0], id, 16, 17); Serial.print("MAC address: "); Serial.println(id); } else { Serial.println("Skipping wifi setup"); } } if (_is_wifi_enabled) _is_connected = true;; }
void _getMonitor(cJSON *root, s_config *config, char *http_packet) { char tmp_value[32]; int flag = 0; cJSON *valueSetObj= cJSON_CreateObject(); cJSON *package; cJSON *list; cJSON *transaction_id = cJSON_GetObjectItem(root, "transaction_id"); if(!transaction_id) { debug(LOG_ERR, "Can not find transaction_id parameter: %s", cJSON_GetErrorPtr()); create_http_json(valueSetObj, 0, RESPONSE, GETMONITOR, "failed", "3", "Missing parameter:{transaction_id}", config->sn, http_packet); return; } cJSON *valueSet = cJSON_GetObjectItem(root, "valueSet"); if(!valueSet) { debug(LOG_ERR, "Can not find valueset parameter: %s", cJSON_GetErrorPtr()); create_http_json(valueSetObj, transaction_id->valuestring, RESPONSE, GETMONITOR, "failed", "3", "Missing parameter:{valueSet}", config->sn, http_packet); return; } cJSON *monitors = cJSON_GetObjectItem(valueSet, "monitors"); if(!monitors) { debug(LOG_ERR, "Can not find monitor parameter: %s", cJSON_GetErrorPtr()); create_http_json(valueSetObj, transaction_id->valuestring, RESPONSE, GETMONITOR, "failed", "3", "Missing parameter:{monitors}", config->sn, http_packet); return; } int array_size = cJSON_GetArraySize(monitors); debug(LOG_DEBUG, "Array size of monitor is %d",array_size); int i = 0; cJSON *item; for(i=0; i< array_size; i++) { item = cJSON_GetArrayItem(monitors, i); debug(LOG_DEBUG, "%s\n",item->valuestring); if(strcmp(item->valuestring , "wireless_traffic") == 0) { flag = 1; int wifi_index = 0; char interface_name[INTERFACELEN]; char ssid[SSIDLEN]; char assoc_num[4]; cJSON_AddItemToObject(valueSetObj, "wireless_traffic", list = cJSON_CreateArray()); while(read_ssid(wifi_index++, ssid, sizeof(ssid)/sizeof(ssid[0]))) { cJSON_AddItemToArray(list, package = cJSON_CreateObject()); sprintf(tmp_value, "%d", wifi_index-1); cJSON_AddStringToObject(package,"radio_index",tmp_value); snprintf(interface_name, INTERFACELEN, "eth%d", wifi_index); read_counter(tmp_value, interface_name, "Rxbytes", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Rxbytes", tmp_value); read_counter(tmp_value, interface_name, "Txbytes", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Txbytes", tmp_value); read_counter(tmp_value, interface_name, "Rxpkt", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Rxpkt", tmp_value); read_counter(tmp_value, interface_name, "Txpkt", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Txpkt", tmp_value); read_assoc_client_count(interface_name, assoc_num, sizeof(assoc_num)/sizeof(assoc_num[0])); cJSON_AddStringToObject(package,"NumberOfAssociatedClients", assoc_num); } } else if(strcmp(item->valuestring , "wired_traffic") == 0) { flag = 1; cJSON_AddItemToObject(valueSetObj, "wired_traffic", package = cJSON_CreateObject()); read_counter(tmp_value, "vlan2", "Rxbytes", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Rxbytes", tmp_value); read_counter(tmp_value, "vlan2", "Txbytes", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Txbytes", tmp_value); read_counter(tmp_value, "vlan2", "Rxpkt", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Rxpkt", tmp_value); read_counter(tmp_value, "vlan2", "Txpkt", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"Txpkt", tmp_value); /* read_counter(tmp_value, "vlan2", "rx_errors", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"rx_errors", tmp_value); read_counter(tmp_value, "vlan2", "tx_errors", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"tx_errors", tmp_value); read_counter(tmp_value, "vlan2", "rx_discards", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"rx_discards", tmp_value); read_counter(tmp_value, "vlan2", "tx_discards", sizeof(tmp_value)/sizeof(tmp_value[0])); cJSON_AddStringToObject(package,"tx_discards", tmp_value); */ } } flag?create_http_json(valueSetObj, transaction_id->valuestring, RESPONSE, GETMONITOR, "success", "0", NULL, NULL, http_packet):create_http_json(valueSetObj, atoi(transaction_id->valuestring), RESPONSE, GETMONITOR, "failed", "4", "Unsupported value", config->sn, http_packet); }