Larger font for data, labels at top

This commit is contained in:
Joan
2025-12-31 12:28:12 +01:00
parent e1be076265
commit cb7d1392f8

View File

@@ -118,6 +118,8 @@ class Matrix64Display(SampleBase):
font_dir = "/home/pi/rpi-rgb-led-matrix/fonts" font_dir = "/home/pi/rpi-rgb-led-matrix/fonts"
time_font = graphics.Font() time_font = graphics.Font()
time_font.LoadFont(f"{font_dir}/7x13.bdf") time_font.LoadFont(f"{font_dir}/7x13.bdf")
data_font = graphics.Font()
data_font.LoadFont(f"{font_dir}/5x8.bdf")
small_font = graphics.Font() small_font = graphics.Font()
small_font.LoadFont(f"{font_dir}/4x6.bdf") small_font.LoadFont(f"{font_dir}/4x6.bdf")
@@ -125,7 +127,7 @@ class Matrix64Display(SampleBase):
time_color = graphics.Color(20, 75, 200) time_color = graphics.Color(20, 75, 200)
humidity_color = graphics.Color(100, 180, 255) # Light blue for humidity humidity_color = graphics.Color(100, 180, 255) # Light blue for humidity
hdd_color = graphics.Color(80, 80, 80) # Dim gray for HDD temps hdd_color = graphics.Color(80, 80, 80) # Dim gray for HDD temps
label_color = graphics.Color(100, 100, 100) # Gray for labels label_color = graphics.Color(120, 120, 120) # Gray for labels
# Initial data fetch # Initial data fetch
self.update_brightness() self.update_brightness()
@@ -149,31 +151,32 @@ class Matrix64Display(SampleBase):
# === Weather Icon (top-left, 24x24 area) === # === Weather Icon (top-left, 24x24 area) ===
draw_weather_icon(canvas, 0, 0, self.weather_desc) draw_weather_icon(canvas, 0, 0, self.weather_desc)
# === Outdoor Weather (right side, row 1) === # === Labels at top (right side) ===
graphics.DrawText(canvas, small_font, 28, 6, label_color, "Out")
graphics.DrawText(canvas, small_font, 48, 6, label_color, "In")
# === Temperatures (row below labels) ===
if self.temperature is not None: if self.temperature is not None:
temp_str = format_temp(self.temperature) temp_str = format_temp(self.temperature)
temp_color = get_temperature_color(self.temperature) temp_color = get_temperature_color(self.temperature)
graphics.DrawText(canvas, small_font, 26, 6, temp_color, temp_str) graphics.DrawText(canvas, data_font, 26, 14, temp_color, temp_str)
if self.humidity is not None:
hum_str = format_humidity(self.humidity)
graphics.DrawText(canvas, small_font, 48, 6, humidity_color, hum_str)
# === Indoor Weather (right side, row 2) ===
if self.interior_temperature is not None: if self.interior_temperature is not None:
temp_str = format_temp(self.interior_temperature) temp_str = format_temp(self.interior_temperature)
temp_color = get_temperature_color(self.interior_temperature) temp_color = get_temperature_color(self.interior_temperature)
graphics.DrawText(canvas, small_font, 26, 14, temp_color, temp_str) graphics.DrawText(canvas, data_font, 46, 14, temp_color, temp_str)
# === Humidity (row below temps) ===
if self.humidity is not None:
hum_str = format_humidity(self.humidity)
graphics.DrawText(canvas, data_font, 26, 22, humidity_color, hum_str)
if self.interior_humidity is not None: if self.interior_humidity is not None:
hum_str = format_humidity(self.interior_humidity) hum_str = format_humidity(self.interior_humidity)
graphics.DrawText(canvas, small_font, 48, 14, humidity_color, hum_str) graphics.DrawText(canvas, data_font, 46, 22, humidity_color, hum_str)
# === Labels for Out/In ===
graphics.DrawText(canvas, small_font, 26, 22, label_color, "Out In")
# === Time Display (centered) === # === Time Display (centered) ===
time_len = len(time_str) * 7 # 7x13 font is ~7px wide time_len = len(time_str) * 7
time_x = (64 - time_len) // 2 time_x = (64 - time_len) // 2
graphics.DrawText(canvas, time_font, time_x, 38, time_color, time_str) graphics.DrawText(canvas, time_font, time_x, 38, time_color, time_str)
@@ -181,8 +184,8 @@ class Matrix64Display(SampleBase):
if self.hdd_temps and len(self.hdd_temps) > 4: if self.hdd_temps and len(self.hdd_temps) > 4:
row1 = " ".join(str(int(t[0]))[:2] for t in self.hdd_temps[1:4]) row1 = " ".join(str(int(t[0]))[:2] for t in self.hdd_temps[1:4])
row2 = " ".join(str(int(t[0]))[:2] for t in self.hdd_temps[4:]) row2 = " ".join(str(int(t[0]))[:2] for t in self.hdd_temps[4:])
graphics.DrawText(canvas, small_font, 14, 50, hdd_color, row1) graphics.DrawText(canvas, data_font, 10, 50, hdd_color, row1)
graphics.DrawText(canvas, small_font, 14, 58, hdd_color, row2) graphics.DrawText(canvas, data_font, 10, 60, hdd_color, row2)
time.sleep(0.5) time.sleep(0.5)
canvas = self.matrix.SwapOnVSync(canvas) canvas = self.matrix.SwapOnVSync(canvas)