static gboolean OnCpuChangedCb(gpointer event_ptr) {
LoggerD("Enter");
SysteminfoManager* manager = static_cast<SysteminfoManager*>(event_ptr);
- manager->CallListenerCallback(kPropertyIdCpu);
+ manager->CallCpuListenerCallback();
return G_SOURCE_CONTINUE;
}
static gboolean OnStorageChangedCb(gpointer event_ptr) {
LoggerD("Enter");
SysteminfoManager* manager = static_cast<SysteminfoManager*>(event_ptr);
- manager->CallListenerCallback(kPropertyIdStorage);
+ manager->CallStorageListenerCallback();
return G_SOURCE_CONTINUE;
}
sensor_handle_(-1),
wifi_level_(WIFI_RSSI_LEVEL_0),
cpu_load_(0),
+ last_cpu_load_(0),
available_capacity_internal_(0),
+ last_available_capacity_internal_(0),
available_capacity_mmc_(0),
+ last_available_capacity_mmc_(0),
sim_count_(0),
tapi_handles_{nullptr},
cpu_event_id_(0),
}
}
-double SysteminfoManager::GetCpuInfoLoad() {
- LoggerD("Enter");
- return cpu_load_;
-}
-
void SysteminfoManager::SetCpuInfoLoad(double load) {
LoggerD("Enter");
cpu_load_ = load;
}
-unsigned long long SysteminfoManager::GetAvailableCapacityInternal() {
- LoggerD("Entered");
- return available_capacity_internal_;
-}
-
void SysteminfoManager::SetAvailableCapacityInternal(unsigned long long capacity) {
LoggerD("Entered");
available_capacity_internal_ = capacity;
}
-unsigned long long SysteminfoManager::GetAvailableCapacityMmc() {
- LoggerD("Entered");
- return available_capacity_mmc_;
-}
-
void SysteminfoManager::SetAvailableCapacityMmc(unsigned long long capacity) {
LoggerD("Entered");
available_capacity_mmc_ = capacity;
return (registered_listeners_.find(property_id) != registered_listeners_.end());
}
+void SysteminfoManager::PostListenerResponse(const std::string& property_id,
+ const picojson::value& result) {
+ LoggerD("Entered");
+ const std::shared_ptr<picojson::value>& response =
+ std::shared_ptr<picojson::value>(new picojson::value(picojson::object()));
+ response->get<picojson::object>()[kPropertyIdString] = picojson::value(property_id);
+ response->get<picojson::object>()[kListenerIdString] = picojson::value(kListenerConstValue);
+
+ ReportSuccess(result,response->get<picojson::object>());
+ Instance::PostMessage(instance_, response->serialize().c_str());
+}
+
+
void SysteminfoManager::CallListenerCallback(const std::string& property_id) {
LoggerD("Enter");
if(IsListenerRegistered(property_id)) {
LoggerD("listener for %s property is registered, calling it", property_id.c_str());
- const std::shared_ptr<picojson::value>& response =
- std::shared_ptr<picojson::value>(new picojson::value(picojson::object()));
- response->get<picojson::object>()[kPropertyIdString] = picojson::value(property_id);
- response->get<picojson::object>()[kListenerIdString] = picojson::value(kListenerConstValue);
picojson::value result = picojson::value(picojson::object());
PlatformResult ret = GetPropertiesManager().GetPropertyValue(
property_id, true, &result);
if (ret.IsSuccess()) {
- ReportSuccess(result,response->get<picojson::object>());
- Instance::PostMessage(instance_, response->serialize().c_str());
+ PostListenerResponse(property_id, result);
}
} else {
LoggerD("listener for %s property is not registered, ignoring", property_id.c_str());
std::string property_id = kPropertyIdCpu;
if(IsListenerRegistered(property_id)) {
LoggerD("listener for %s property is registered, calling it", property_id.c_str());
- const std::shared_ptr<picojson::value>& response =
- std::shared_ptr<picojson::value>(new picojson::value(picojson::object()));
- response->get<picojson::object>()[kPropertyIdString] = picojson::value(property_id);
- response->get<picojson::object>()[kListenerIdString] = picojson::value(kListenerConstValue);
-
picojson::value result = picojson::value(picojson::object());
PlatformResult ret = GetPropertiesManager().GetPropertyValue(
property_id, true, &result);
if (ret.IsSuccess()) {
- ReportSuccess(result,response->get<picojson::object>());
- Instance::PostMessage(instance_, response->serialize().c_str());
+ if (cpu_load_ == last_cpu_load_) {
+ LoggerD("Cpu load didn't change, ignoring");
+ return;
+ }
+ last_cpu_load_ = cpu_load_;
+ PostListenerResponse(property_id, result);
}
} else {
LoggerD("listener for %s property is not registered, ignoring", property_id.c_str());
std::string property_id = kPropertyIdStorage;
if(IsListenerRegistered(property_id)) {
LoggerD("listener for %s property is registered, calling it", property_id.c_str());
- const std::shared_ptr<picojson::value>& response =
- std::shared_ptr<picojson::value>(new picojson::value(picojson::object()));
- response->get<picojson::object>()[kPropertyIdString] = picojson::value(property_id);
- response->get<picojson::object>()[kListenerIdString] = picojson::value(kListenerConstValue);
picojson::value result = picojson::value(picojson::object());
PlatformResult ret = GetPropertiesManager().GetPropertyValue(
property_id, true, &result);
if (ret.IsSuccess()) {
- if (available_capacity_internal_ == last_available_capacity_internal_) {
+ // check if anything changed
+ if (available_capacity_internal_ == last_available_capacity_internal_ &&
+ available_capacity_mmc_ == last_available_capacity_mmc_) {
+ LoggerD("Storage state didn't change, ignoring");
return;
}
+ // refresh previous values
last_available_capacity_internal_ = available_capacity_internal_;
- ReportSuccess(result,response->get<picojson::object>());
- Instance::PostMessage(instance_, response->serialize().c_str());
+ last_available_capacity_mmc_ = available_capacity_mmc_;
+
+ PostListenerResponse(property_id, result);
}
} else {
LoggerD("listener for %s property is not registered, ignoring", property_id.c_str());
LoggerE("%s", log_msg.c_str());
return PlatformResult(ErrorCode::UNKNOWN_ERR, log_msg);
} else {
- LoggerD("WIFI initializatino succeed");
+ LoggerD("WIFI initialization succeed");
}
SCOPE_EXIT {
wifi_deinitialize();
};
- wifi_ap_h wifi_ap_handle = nullptr;
- error = wifi_get_connected_ap(&wifi_ap_handle);
+ // check if wifi activated
+ bool activated = false;
+ error = wifi_is_activated(&activated);
if (WIFI_ERROR_NONE != 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_ERROR_NO_CONNECTION != error) {
- std::string log_msg = "Cannot get connected access point handle: " +
- std::string(get_error_message(error));
- LoggerE("%s", log_msg.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, log_msg);
- }
+ std::string log_msg = "Checking if wifi is activated failed: " +
+ std::string(get_error_message(error));
+ LoggerE("%s", log_msg.c_str());
+ return PlatformResult(ErrorCode::UNKNOWN_ERR, log_msg);
} else {
- //if getting connected AP succeed, set status on true
- result_status = true;
+ LoggerD("WIFI activated check succeed");
+ }
+
+ wifi_ap_h wifi_ap_handle = nullptr;
+ if (activated) {
+ LoggerD("Wifi is activated");
+ error = wifi_get_connected_ap(&wifi_ap_handle);
+ if (WIFI_ERROR_NONE != 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_ERROR_NO_CONNECTION != error) {
+ std::string log_msg = "Cannot get connected access point handle: " +
+ std::string(get_error_message(error));
+ LoggerE("%s", log_msg.c_str());
+ return PlatformResult(ErrorCode::UNKNOWN_ERR, log_msg);
+ }
+ } else {
+ //if getting connected AP succeed, set status on true
+ result_status = true;
+ }
}
if (result_status) {