GHashTable *hash = g_hash_table_new_full(g_str_hash, g_str_equal, bm_data_free, bm_atm_st2_free);
long int edTime = 0, stTime = 0;
- long int sesTime = 0, scTime = 0, conTime = 0, RX = 0, TX = 0;
+ long int sesTime = 0, scTime = 0, conTime = 0, RX_app = 0, TX_app = 0;
+ long int RX_system = 0, TX_system = 0;
double onTime = 0;
/* iterating over list for data accumulation */
for (bt_data_iterator = handle->bt_data_list; bt_data_iterator; bt_data_iterator = bt_data_iterator->next) {
continue;
}
_DBG("bt data available");
- RX += bt_atm_node->rx;
- TX += bt_atm_node->tx;
+
+ /* Get the system usage */
+ if (g_strcmp0(bt_atm_node->app_id, BM_APPID_SYSTEM) == 0) {
+ _DBG("ignore - app_id(%s), time(%d), rx(%d), tx(%d)", bt_atm_node->app_id,
+ bt_atm_node->time, bt_atm_node->rx, bt_atm_node->tx);
+
+ RX_system += bt_atm_node->rx;
+ TX_system += bt_atm_node->tx;
+
+ bm_data_free(bt_atm_node->app_id);
+ bm_atm_st2_free(bt_atm_node);
+ continue;
+ }
+
+ RX_app += bt_atm_node->rx;
+ TX_app += bt_atm_node->tx;
onTime += bt_atm_node->time;
prv_data = NULL;
prv_app_id = NULL;
/* BT power consumption Level - 1 at the Resource Level */
long int P_power_bt = 0, P_power_data = 0, P_power_conn = 0;
P_power_conn = ((sP_power_bt_idle) * (sesTime - (scTime + conTime))) + ((sP_power_bt_scan) * (scTime)) + ((sP_power_bt_conn) * (conTime));
- P_power_data = ((sP_power_bt_tx) * TX) + ((sP_power_bt_rx) * RX);
+ P_power_data = ((sP_power_bt_tx) * TX_app) + ((sP_power_bt_rx) * RX_app);
P_power_bt = P_power_conn + P_power_data;
_DBG("Calculated Power for Bluetooth P_power_bt(%ld), P_power_conn (%ld), P_power_data(%ld)", P_power_bt, P_power_conn, P_power_data);
g_hash_table_destroy(hash);
/* Dump resource usage */
- _DBG("BLE usage : %ld", RX + TX);
- if (RX > 0 || TX > 0) {
+ _DBG("BLE usage : %ld", RX_system + TX_system + RX_app + TX_app);
+ if (RX_system > 0 || TX_system > 0 || RX_app > 0 || TX_app > 0) {
history_item_s hi;
bd_print_history_item_reset(&hi);
- struct timeval tv;
- gettimeofday(&tv, NULL);
-
- hi.time_s = ((long long)tv.tv_sec * 1000) + ((long long)tv.tv_usec / 1000);
-
hi.cmd_s = CM_USAGE;
hi.usage_type = USAGE_BLUETOOTH;
- hi.usage = RX + TX;
+ hi.usage = RX_system + TX_system + RX_app + TX_app;
bd_store_history_item(&hi);
}