};
// check if wifi is activated
- bool activated = false;
- error = wifi_manager_is_activated(wifi_manager, &activated);
+ error = wifi_manager_is_activated(wifi_manager, &result_status);
if (WIFI_MANAGER_ERROR_NONE != error) {
std::string log_msg = "Checking if wifi is activated failed: " +
std::string(get_error_message(error));
return LogAndCreateResult(
ErrorCode::UNKNOWN_ERR, log_msg,
("wifi_manager_is_activated error: %d (%s)", error, get_error_message(error)));
+ }
+
+ //gathering mac address
+ char* mac = nullptr;
+ error = wifi_manager_get_mac_address(wifi_manager, &mac);
+ if (WIFI_MANAGER_ERROR_NONE == error && nullptr != mac) {
+ SLoggerD("MAC address fetched: %s", mac);
+ result_mac_address = mac;
+ free(mac);
} else {
- LoggerD("WIFI activated check succeed");
+ std::string log_msg = "Failed to get mac address: " + std::string(get_error_message(error));
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, log_msg,
+ ("wifi_manager_get_mac_address error: %d (%s)", error, get_error_message(error)));
}
wifi_manager_ap_h wifi_ap_handle = nullptr;
- if (activated) {
+ if (result_status) {
LoggerD("Wifi is activated");
error = wifi_manager_get_connected_ap(wifi_manager, &wifi_ap_handle);
- if (WIFI_MANAGER_ERROR_NONE != error) {
+ if (WIFI_MANAGER_ERROR_NONE != error && WIFI_MANAGER_ERROR_NO_CONNECTION != error) {
LoggerD("Error while wifi_get_connnected_ap: %s", get_error_message(error));
- // in case of no connection, ignore error and leave status as false
- if (WIFI_MANAGER_ERROR_NO_CONNECTION != error) {
- std::string log_msg = "Cannot get connected access point handle: " +
+ std::string log_msg = "Cannot get connected access point handle: " +
std::string(get_error_message(error));
return LogAndCreateResult(
ErrorCode::UNKNOWN_ERR, log_msg,
("wifi_manager_get_connected_ap error: %d (%s)", error, get_error_message(error)));
}
- } else {
- //if getting connected AP succeed, set status on true
- result_status = true;
- }
- }
- if (result_status) {
std::unique_ptr<std::remove_pointer<wifi_manager_ap_h>::type, int(*)(wifi_manager_ap_h)>
wifi_ap_handle_ptr(wifi_ap_handle, &wifi_manager_ap_destroy);
// automatically release the memory
- //gathering mac address
- char* mac = nullptr;
- error = wifi_manager_get_mac_address(wifi_manager, &mac);
- if (WIFI_MANAGER_ERROR_NONE == error && nullptr != mac) {
- SLoggerD("MAC address fetched: %s", mac);
- result_mac_address = mac;
- free(mac);
- } else {
- std::string log_msg = "Failed to get mac address: " + std::string(get_error_message(error));
- return LogAndCreateResult(
- ErrorCode::UNKNOWN_ERR, log_msg,
- ("wifi_manager_get_mac_address error: %d (%s)", error, get_error_message(error)));
- }
-
- //refreshing access point information
- error = wifi_manager_ap_refresh(wifi_ap_handle);
- if (WIFI_MANAGER_ERROR_NONE != error) {
- std::string log_msg = "Failed to refresh access point information: " +
- std::string(get_error_message(error));
- return LogAndCreateResult(
- ErrorCode::UNKNOWN_ERR, log_msg,
- ("wifi_manager_ap_refresh error: %d (%s)", error, get_error_message(error)));
- }
-
- //gathering ssid
- char* essid = nullptr;
- error = wifi_manager_ap_get_essid(wifi_ap_handle, &essid);
- if (WIFI_MANAGER_ERROR_NONE == error) {
- result_ssid = essid;
- free(essid);
- } else {
- std::string log_msg = "Failed to get network ssid: " + std::string(get_error_message(error));
- return LogAndCreateResult(
- ErrorCode::UNKNOWN_ERR, log_msg,
- ("wifi_manager_ap_get_essid error: %d (%s)", error, get_error_message(error)));
- }
-
- //gathering ips
- PlatformResult ret = GetIpsWifi(wifi_ap_handle, &result_ip_address, &result_ipv6_address);
- if (ret.IsError()) {
- return ret;
- }
+ if (WIFI_MANAGER_ERROR_NO_CONNECTION != error) {
+ //refreshing access point information
+ error = wifi_manager_ap_refresh(wifi_ap_handle);
+ if (WIFI_MANAGER_ERROR_NONE != error) {
+ std::string log_msg = "Failed to refresh access point information: " +
+ std::string(get_error_message(error));
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, log_msg,
+ ("wifi_manager_ap_refresh error: %d (%s)", error, get_error_message(error)));
+ }
- //gathering strength
- wifi_manager_rssi_level_e rssi_level = manager_.GetWifiLevel();
- // this mean that level was not initialized or wifi not connected
- if (WIFI_MANAGER_RSSI_LEVEL_0 == rssi_level) {
- // so try to gather rssi level with dedicated function
- int rssi = 0;
- error = wifi_manager_ap_get_rssi(wifi_ap_handle, &rssi);
+ //gathering ssid
+ char* essid = nullptr;
+ error = wifi_manager_ap_get_essid(wifi_ap_handle, &essid);
if (WIFI_MANAGER_ERROR_NONE == error) {
- result_signal_strength = ((double) abs(rssi))/kWifiSignalStrengthDivideValue;
+ result_ssid = essid;
+ free(essid);
} else {
- std::string log_msg = "Failed to get signal strength: " +
- std::string(get_error_message(error));
+ std::string log_msg = "Failed to get network ssid: " + std::string(get_error_message(error));
return LogAndCreateResult(
- ErrorCode::UNKNOWN_ERR, log_msg,
- ("wifi_manager_ap_get_rssi error: %d (%s)", error, get_error_message(error)));
+ ErrorCode::UNKNOWN_ERR, log_msg,
+ ("wifi_manager_ap_get_essid error: %d (%s)", error, get_error_message(error)));
+ }
+
+ //gathering ips
+ PlatformResult ret = GetIpsWifi(wifi_ap_handle, &result_ip_address, &result_ipv6_address);
+ if (ret.IsError()) {
+ return ret;
+ }
+
+ //gathering strength
+ wifi_manager_rssi_level_e rssi_level = manager_.GetWifiLevel();
+ // this mean that level was not initialized or wifi not connected
+ if (WIFI_MANAGER_RSSI_LEVEL_0 == rssi_level) {
+ // so try to gather rssi level with dedicated function
+ int rssi = 0;
+ error = wifi_manager_ap_get_rssi(wifi_ap_handle, &rssi);
+ if (WIFI_MANAGER_ERROR_NONE == error) {
+ result_signal_strength = ((double) abs(rssi))/kWifiSignalStrengthDivideValue;
+ } else {
+ std::string log_msg = "Failed to get signal strength: " +
+ std::string(get_error_message(error));
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, log_msg,
+ ("wifi_manager_ap_get_rssi error: %d (%s)", error, get_error_message(error)));
+ }
+ } else {
+ result_signal_strength = ((double) rssi_level)/WIFI_MANAGER_RSSI_LEVEL_4;
}
- } else {
- result_signal_strength = ((double) rssi_level)/WIFI_MANAGER_RSSI_LEVEL_4;
}
}
+
//building result object
out->insert(std::make_pair("status", picojson::value(result_status ? kWifiStatusOn : kWifiStatusOff)));
out->insert(std::make_pair("ssid", picojson::value(result_ssid)));