diff --git a/P4_Display_Firmware/Changelog.txt b/P4_Display_Firmware/Changelog.txt index b11daba..f814ef6 100644 --- a/P4_Display_Firmware/Changelog.txt +++ b/P4_Display_Firmware/Changelog.txt @@ -1,3 +1,9 @@ +Version 1.11.3: +- Der Punkt sitzt wieder genau auf dem letzten Messwert, statt eine halbe Punktbreite davor. + Die Linie schaut damit rechts nicht mehr unter ihm hervor. Damit trotzdem nichts + abgeschnitten wird, lässt die Kurvenfläche rechts einen schmalen Rand frei: Der Platz + gehört noch zum Diagramm, wird aber nicht mehr bezeichnet. + Version 1.11.2: - Der Punkt am Kurvenende sitzt jetzt vollständig innerhalb der Kurvenfläche, statt mittig auf dem letzten Messwert und damit halb außerhalb. Rechts wird nichts mehr abgeschnitten. diff --git a/P4_Display_Firmware/config.h b/P4_Display_Firmware/config.h index 24c87cd..9cd6a16 100644 --- a/P4_Display_Firmware/config.h +++ b/P4_Display_Firmware/config.h @@ -126,7 +126,7 @@ // ------------------------------------------------------------------------------------- // Firmware // ------------------------------------------------------------------------------------- -#define DISPLAY_FW_VERSION "1.11.2" // Firmware-Stand der P4-Display-Steuerung (Info-Seite) +#define DISPLAY_FW_VERSION "1.11.3" // Firmware-Stand der P4-Display-Steuerung (Info-Seite) // ------------------------------------------------------------------------------------- // Protokoll diff --git a/P4_Display_Firmware/ui.cpp b/P4_Display_Firmware/ui.cpp index 661a17e..c537e5e 100644 --- a/P4_Display_Firmware/ui.cpp +++ b/P4_Display_Firmware/ui.cpp @@ -1220,15 +1220,16 @@ static void spark_dot_place(lv_obj_t* ch, lv_chart_series_t* ser, lv_obj_t* dot, int32_t w = lv_obj_get_content_width(ch); int32_t h = lv_obj_get_content_height(ch); if (w <= 0 || h <= 0) return; - // Der Punkt bleibt vollstaendig innerhalb der Kurvenflaeche. Saesse seine Mitte genau - // auf dem letzten Messwert - also auf der rechten Kante -, laege seine rechte Haelfte - // ausserhalb und wuerde abgeschnitten. Der Schein darf weiterhin hinausreichen. + // Die Mitte des Punktes sitzt genau auf dem letzten Messwert, also am rechten Rand der + // Kurvenflaeche. Damit seine rechte Haelfte trotzdem nicht abgeschnitten wird, laesst + // das Diagramm rechts einen Rand frei (siehe tempSpark) - dort steht der Punkt, ohne + // dass die Linie unter ihm hervorschaut. int32_t r = SPARK_DOT_SIZE / 2; int32_t y = h - (int32_t)(((int64_t)(v - mn) * h) / (mx - mn)); if (y < r) y = r; if (y > h - r) y = h - r; - if (dot == g_sparkDotW) { g_dotCxW = w - r; g_dotCyW = y; } - else { g_dotCxD = w - r; g_dotCyD = y; } + if (dot == g_sparkDotW) { g_dotCxW = w; g_dotCyW = y; } + else { g_dotCxD = w; g_dotCyD = y; } spark_dot_apply(dot, lv_obj_get_width(dot)); lv_obj_remove_flag(dot, LV_OBJ_FLAG_HIDDEN); } @@ -1319,6 +1320,10 @@ static lv_obj_t* tempSpark(lv_obj_t* parent, lv_color_t col, lv_chart_series_t** lv_obj_set_style_bg_opa(ch, LV_OPA_TRANSP, 0); lv_obj_set_style_border_width(ch, 0, 0); lv_obj_set_style_pad_all(ch, 4, 0); + // Rechts etwas mehr Rand: Dort steht der Punkt auf dem letzten Messwert. Der Platz + // gehoert noch zum Diagramm, wird aber nicht mehr bezeichnet - deshalb ragt weder die + // Linie unter dem Punkt hervor noch wird der Punkt an der Kante beschnitten. + lv_obj_set_style_pad_right(ch, SPARK_DOT_SIZE / 2 + 3, 0); lv_obj_set_style_size(ch, 0, 0, LV_PART_INDICATOR); // keine Punktmarkierungen lv_obj_set_style_line_width(ch, 3, LV_PART_ITEMS); // Runde Enden und Ecken: An den Stuetzpunkten sitzt damit kein spitzer Winkel.