aboutsummaryrefslogtreecommitdiff
path: root/remote_plot.c
diff options
context:
space:
mode:
authorXiao Pan <xyz@flylightning.xyz>2025-05-07 21:22:57 -0700
committerXiao Pan <xyz@flylightning.xyz>2025-05-07 21:22:57 -0700
commitb84874b4cd460550f5ddfae9d807736244ed8d8e (patch)
treea33aed36135111a951737b2870843bdc98b357a8 /remote_plot.c
parent4be9a136cad4a93a4abe8b64cd3f22f358e13ca2 (diff)
show min and max
Diffstat (limited to 'remote_plot.c')
-rw-r--r--remote_plot.c39
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