8 enum logd_db_query cb(const struct logd_event_info *event, void *user_data)
14 time_sec = event->time;
15 localtime_r(&time_sec, &st);
16 strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", &st);
17 printf("%s %s %s\n", event->application, timestr, event->message);
19 return LOGD_DB_QUERY_CONTINUE;
22 enum logd_db_query proc_stat_cb(const struct logd_proc_stat *proc_stat, void *user_data)
24 if (proc_stat->utime_power_cons + proc_stat->stime_power_cons == 0)
25 return LOGD_DB_QUERY_STOP;
27 printf("%-50.50s %10f %d\n", proc_stat->application,
28 proc_stat->utime_power_cons + proc_stat->stime_power_cons, proc_stat->is_active);
30 return LOGD_DB_QUERY_CONTINUE;
33 enum logd_db_query dev_stat_cb(const struct logd_device_stat *dev_stat, void *user_data)
35 printf("device %d\t%f\t%f\n", dev_stat->type, dev_stat->power_cons,
36 dev_stat->cur_power_cons);
38 return LOGD_DB_QUERY_CONTINUE;
41 enum logd_db_query energy_efficiency_cb(const char *application,
42 float efficiency, void *user_data)
44 printf("%s %f\n", application, efficiency);
46 return LOGD_DB_QUERY_CONTINUE;
51 struct logd_events_filter filter;
52 struct logd_battery_info *info;
56 memset(&filter, 0, sizeof(filter));
58 filter.to = 2500000000U;
59 if (logd_foreach_events(&filter, &cb, NULL) < 0)
60 puts("logd_foreach_events failed");
62 filter.objects_mask[LOGD_BATTERY_SOC] = 1;
63 printf("by object %d\n", LOGD_BATTERY_SOC);
64 if (logd_foreach_events(&filter, &cb, NULL) < 0)
65 puts("logd_foreach_events failed");
67 filter.objects_mask[LOGD_CHARGER] = 1;
68 printf("by object %d\n", LOGD_CHARGER);
69 if (logd_foreach_events(&filter, &cb, NULL) < 0)
70 puts("logd_foreach_events failed");
72 printf("by action %d\n", LOGD_ON);
73 filter.actions_mask[LOGD_ON] = 1;
74 if (logd_foreach_events(&filter, &cb, NULL) < 0)
75 puts("logd_foreach_events failed");
77 printf("by action %d\n", LOGD_STOP);
78 filter.actions_mask[LOGD_STOP] = 1;
79 if (logd_foreach_events(&filter, &cb, NULL) < 0)
80 puts("logd_foreach_events failed");
82 printf("all of db\n");
83 if (logd_foreach_events(NULL, &cb, NULL) < 0)
84 puts("logd_foreach_events failed");
86 printf("\n\n%-50.50s %10s %10s\n", "Application", "power cons, uah", "is active");
87 if (logd_foreach_proc_stat(&proc_stat_cb, NULL) < 0)
88 puts("logd_foreach_proc_stat failed");
90 if (logd_foreach_devices_stat(&dev_stat_cb, NULL) < 0)
91 puts("logd_foreach_devices_stat failed");
93 if ((info = logd_get_battery_info()) == NULL) {
94 puts("logd_get_battery_info failed");
96 for (i = 0; i < info->n; ++i)
97 printf("date %ld level %d k %f\n", info->levels[i].date,
98 info->levels[i].level, info->levels[i].k);
99 printf("level = %f\n", logd_battery_level_at(info, time(NULL) - 5));
100 printf("index when battery capacity was equal 100%% %d\n",
101 logd_seek_battery_level(info, 10000));
104 logd_foreach_apps_energy_efficiency(energy_efficiency_cb, NULL);
106 if (logd_get_estimate_battery_lifetime(&est_time) == 0) {
107 for (i = 0; i < LOGD_POWER_MODE_MAX; ++i)
108 printf("%d\n", est_time[i]);
111 puts("logd_get_estimate_battery_lifetime failed");