diff options
author | Xiao Pan <xyz@flylightning.xyz> | 2025-05-07 21:22:57 -0700 |
---|---|---|
committer | Xiao Pan <xyz@flylightning.xyz> | 2025-05-07 21:22:57 -0700 |
commit | b84874b4cd460550f5ddfae9d807736244ed8d8e (patch) | |
tree | a33aed36135111a951737b2870843bdc98b357a8 /remote_plot.c | |
parent | 4be9a136cad4a93a4abe8b64cd3f22f358e13ca2 (diff) |
show min and max
Diffstat (limited to 'remote_plot.c')
-rw-r--r-- | remote_plot.c | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/remote_plot.c b/remote_plot.c index 9be27a1..148fc33 100644 --- a/remote_plot.c +++ b/remote_plot.c @@ -426,21 +426,46 @@ static gboolean read_data(gpointer user_data) if(new_entry) { - double sum,avg; - // max 27 char + 1 \0: Average temperature: 99.9 C - char str[28]; + double sum, avg, vmin, vmax; + uint8_t tmin, tmax; + // min/avg/max temperature: 255/254/255 C + // min/avg/max voltage: 6.5535/6.5535/6.5535 V + // max 43 char + 1 \0 + char str[44]; sum=avg=0; + vmin=vmax=data->cans.end->item.volt[0]; + tmin=tmax=data->cans.end->item.temp[0]; for(int i=0;i<VOLTLEN;i++) + { + printf("volt[%d]: %g\n",i,data->cans.end->item.volt[i]); sum+=data->cans.end->item.volt[i]; + if(i>0) + { + if(vmin > data->cans.end->item.volt[i]) + vmin=data->cans.end->item.volt[i]; + if(vmax < data->cans.end->item.volt[i]) + vmax=data->cans.end->item.volt[i]; + } + } avg=sum/VOLTLEN; - sprintf(str,"Average voltage: %.4f V",avg); + sprintf(str,"min/avg/max voltage: %6.4f/%.0f/%6.4f V",vmin,avg,vmax); gtk_label_set_text(GTK_LABEL(data->volt_label),str); sum=0; for(int i=0;i<TEMPLEN;i++) + { + printf("temp[%d]: %hhu\n",i,data->cans.end->item.temp[i]); sum+=data->cans.end->item.temp[i]; + if(i>0) + { + if(tmin > data->cans.end->item.temp[i]) + tmin=data->cans.end->item.temp[i]; + if(tmax < data->cans.end->item.temp[i]) + tmax=data->cans.end->item.temp[i]; + } + } avg=sum/TEMPLEN; - sprintf(str,"Average temperature: %.1f C",avg); + sprintf(str,"min/avg/max temperature: %3hhu/%.1f/%3hhu C",tmin,avg,tmax); gtk_label_set_text(GTK_LABEL(data->temp_label),str); new_entry=false; gtk_widget_queue_draw(data->area); @@ -765,8 +790,8 @@ static void activate (GtkApplication *app, gpointer user_data) g_signal_connect (from_button, "clicked", G_CALLBACK (set_from_time), user_data); g_signal_connect (to_button, "clicked", G_CALLBACK (set_to_time), user_data); - data->volt_label=gtk_label_new("Average voltage:"); - data->temp_label=gtk_label_new("Average temperature:"); + data->volt_label=gtk_label_new("min/avg/max voltage:"); + data->temp_label=gtk_label_new("min/avg/max temperature:"); data->live_toggle = gtk_toggle_button_new_with_label("Live"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->live_toggle),TRUE); // TODO: better live_toggle logic and state consider other states |