Added tooltips for sensors

Version 1.4.2
This commit is contained in:
Ondrej Čerman 2020-06-14 23:28:09 +02:00
parent 86d6046bbd
commit fa17e94b30
6 changed files with 35 additions and 19 deletions

View file

@ -12,6 +12,7 @@ static const guint defaultHeight = 350;
enum {
COLUMN_NAME,
COLUMN_HINT,
COLUMN_VALUE,
COLUMN_MIN,
COLUMN_MAX,
@ -39,6 +40,7 @@ static void init_sensors() {
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
COLUMN_NAME, data->label,
COLUMN_HINT, data->hint,
COLUMN_VALUE, " --- ",
COLUMN_MIN, " --- ",
COLUMN_MAX, " --- ",
@ -53,7 +55,7 @@ static void init_sensors() {
static GtkTreeModel* create_model (void) {
GtkListStore *store;
store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
return GTK_TREE_MODEL (store);
}
@ -142,7 +144,7 @@ static void add_columns (GtkTreeView *treeview) {
static void about_btn_clicked(GtkButton *button, gpointer user_data) {
GtkWidget *dialog;
const gchar *website = "https://github.com/ocerman/zenmonitor";
const gchar *msg = "<b>Zen Monitor</b> 1.4.1\n"
const gchar *msg = "<b>Zen Monitor</b> %s\n"
"Monitoring software for AMD Zen-based CPUs\n"
"<a href=\"%s\">%s</a>\n\n"
"Created by: Ondrej Čerman";
@ -150,7 +152,7 @@ static void about_btn_clicked(GtkButton *button, gpointer user_data) {
dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW (window),
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
msg, website, website);
msg, VERSION, website, website);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
@ -251,6 +253,7 @@ int start_gui (SensorSource *ss) {
model = create_model();
treeview = gtk_tree_view_new_with_model(model);
gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(treeview), COLUMN_HINT);
gtk_container_add (GTK_CONTAINER(sw), treeview);
add_columns(GTK_TREE_VIEW(treeview));

View file

@ -1,8 +1,10 @@
#define ERROR_VALUE -999.0
#define VERSION "1.4.2"
typedef struct
{
gchar *label;
gchar *hint;
float *value;
float *min;
float *max;

View file

@ -202,6 +202,7 @@ GSList* msr_get_sensors() {
data = sensor_init_new();
data->label = g_strdup("Package Power");
data->hint = g_strdup("Package Power reported by RAPL\nSource: cpu0 MSR");
data->value = &package_power;
data->min = &package_power_min;
data->max = &package_power_max;
@ -211,6 +212,7 @@ GSList* msr_get_sensors() {
for (i = 0; i < cores; i++) {
data = sensor_init_new();
data->label = g_strdup_printf("Core %d Effective Frequency", display_coreid ? cpu_dev_ids[i].coreid: i);
data->hint = g_strdup_printf("Source: cpu%d MSR", cpu_dev_ids[i].cpuid);
data->value = &(core_fid[i]);
data->min = &(core_fid_min[i]);
data->max = &(core_fid_max[i]);
@ -221,6 +223,7 @@ GSList* msr_get_sensors() {
for (i = 0; i < cores; i++) {
data = sensor_init_new();
data->label = g_strdup_printf("Core %d Power", display_coreid ? cpu_dev_ids[i].coreid: i);
data->hint = g_strdup_printf("Core Power reported by RAPL\nSource: cpu%d MSR", cpu_dev_ids[i].cpuid);
data->value = &(core_power[i]);
data->min = &(core_power_min[i]);
data->max = &(core_power_max[i]);

View file

@ -86,6 +86,7 @@ GSList* os_get_sensors(void) {
for (i = 0; i < cores; i++) {
data = sensor_init_new();
data->label = g_strdup_printf("Core %d Frequency", display_coreid ? cpu_dev_ids[i].coreid: i);
data->hint = g_strdup_printf("Current frequency of the CPU as determined by the governor and cpufreq core.\n Source: %s", frq_files[i]);
data->value = &(core_freq[i]);
data->min = &(core_freq_min[i]);
data->max = &(core_freq_max[i]);

View file

@ -10,6 +10,7 @@ static int nodes = 0;
typedef struct
{
const gchar *label;
const gchar *hint;
const gchar *file;
const gchar *printf_format;
const double adjust_ratio;
@ -26,22 +27,26 @@ typedef struct
} HwmonSensor;
static HwmonSensorType hwmon_stype[] = {
{"CPU Temperature (tCtl)", "temp1_input", " %6.2f°C", 1000.0},
{"CPU Temperature (tDie)", "temp2_input", " %6.2f°C", 1000.0},
{"CCD1 Temperature", "temp3_input", " %6.2f°C", 1000.0},
{"CCD2 Temperature", "temp4_input", " %6.2f°C", 1000.0},
{"CCD3 Temperature", "temp5_input", " %6.2f°C", 1000.0},
{"CCD4 Temperature", "temp6_input", " %6.2f°C", 1000.0},
{"CCD5 Temperature", "temp7_input", " %6.2f°C", 1000.0},
{"CCD6 Temperature", "temp8_input", " %6.2f°C", 1000.0},
{"CCD7 Temperature", "temp9_input", " %6.2f°C", 1000.0},
{"CCD8 Temperature", "temp10_input", " %6.2f°C", 1000.0},
{"CPU Core Voltage (SVI2)", "in1_input", " %8.3f V", 1000.0},
{"SOC Voltage (SVI2)", "in2_input", " %8.3f V", 1000.0},
{"CPU Core Current (SVI2)", "curr1_input", " %8.3f A", 1000.0},
{"SOC Current (SVI2)", "curr2_input", " %8.3f A", 1000.0},
{"CPU Core Power (SVI2)", "power1_input", " %8.3f W", 1000000.0},
{"SOC Power (SVI2)", "power2_input", " %8.3f W", 1000000.0},
{"CPU Temperature (tCtl)", "Reported CPU Temperature", "temp1_input", " %6.2f°C", 1000.0},
{"CPU Temperature (tDie)", "Reported CPU Temperature - offset", "temp2_input", " %6.2f°C", 1000.0},
{"CCD1 Temperature", "Core Complex Die 1 Temperature", "temp3_input", " %6.2f°C", 1000.0},
{"CCD2 Temperature", "Core Complex Die 2 Temperature", "temp4_input", " %6.2f°C", 1000.0},
{"CCD3 Temperature", "Core Complex Die 3 Temperature", "temp5_input", " %6.2f°C", 1000.0},
{"CCD4 Temperature", "Core Complex Die 4 Temperature", "temp6_input", " %6.2f°C", 1000.0},
{"CCD5 Temperature", "Core Complex Die 5 Temperature", "temp7_input", " %6.2f°C", 1000.0},
{"CCD6 Temperature", "Core Complex Die 6 Temperature", "temp8_input", " %6.2f°C", 1000.0},
{"CCD7 Temperature", "Core Complex Die 7 Temperature", "temp9_input", " %6.2f°C", 1000.0},
{"CCD8 Temperature", "Core Complex Die 8 Temperature", "temp10_input", " %6.2f°C", 1000.0},
{"CPU Core Voltage (SVI2)", "Core Voltage reported by SVI2 telemetry", "in1_input", " %8.3f V", 1000.0},
{"SOC Voltage (SVI2)", "SOC Voltage reported by SVI2 telemetry", "in2_input", " %8.3f V", 1000.0},
{"CPU Core Current (SVI2)", "Core Current reported by SVI2 telemetry\n"
"Note: May not be accurate on some systems", "curr1_input", " %8.3f A", 1000.0},
{"SOC Current (SVI2)", "SOC Current reported by SVI2 telemetry\n"
"Note: May not be accurate on some systems", "curr2_input", " %8.3f A", 1000.0},
{"CPU Core Power (SVI2)", "Core Voltage * Current\n"
"Note: May not be accurate on some systems", "power1_input", " %8.3f W", 1000000.0},
{"SOC Power (SVI2)", "Core Voltage * Current\n"
"Note: May not be accurate on some systems", "power2_input", " %8.3f W", 1000000.0},
{0, NULL}
};
@ -165,6 +170,7 @@ GSList* zenpower_get_sensors() {
else{
data->label = g_strdup(sensor->type->label);
}
data->hint = g_strdup_printf("%s\nSource: zenpower %s/%s", sensor->type->hint, sensor->hwmon_dir, sensor->type->file);
data->value = &sensor->current_value;
data->min = &sensor->min;
data->max = &sensor->max;

View file

@ -111,6 +111,7 @@ SensorInit *sensor_init_new() {
void sensor_init_free(SensorInit *s) {
if (s) {
g_free(s->label);
g_free(s->hint);
g_free(s);
}
}