Skip to content

Commit 22a1666

Browse files
Add display.get_dpi() and show in About app
1 parent bcfd941 commit 22a1666

File tree

4 files changed

+32
-44
lines changed

4 files changed

+32
-44
lines changed

internal_filesystem/builtin/apps/com.micropythonos.about/assets/about.py

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from mpos import Activity, pct_of_display_width
1+
from mpos import Activity, pct_of_display_width, get_display_width, get_display_height, get_dpi
22

33
import mpos.info
44
import sys
@@ -90,32 +90,22 @@ def onCreate(self):
9090
try:
9191
self._add_label(screen, f"{lv.SYMBOL.SETTINGS} ESP32 Hardware", is_header=True)
9292
import esp32
93-
self._add_label(screen, f"Flash size: {esp32.flash_size()} bytes")
94-
try:
95-
psram_size = esp32.psram_size()
96-
self._add_label(screen, f"PSRAM size: {psram_size} bytes")
97-
except:
98-
pass
99-
try:
100-
idf_version = esp32.idf_version()
101-
self._add_label(screen, f"IDF version: {idf_version}")
102-
except:
103-
pass
93+
self._add_label(screen, f"Temperature: {esp32.mcu_temperature()} °C")
10494
except Exception as e:
10595
print(f"Could not get ESP32 hardware info: {e}")
10696

107-
# Partition info (ESP32 only)
108-
try:
109-
self._add_label(screen, f"{lv.SYMBOL.SD_CARD} Partition Info", is_header=True)
110-
from esp32 import Partition
111-
current = Partition(Partition.RUNNING)
112-
self._add_label(screen, f"Partition.RUNNING: {current}")
113-
next_partition = current.get_next_update()
114-
self._add_label(screen, f"Next update partition: {next_partition}")
115-
except Exception as e:
116-
error = f"Could not find partition info because: {e}\nIt's normal to get this error on desktop."
117-
print(error)
118-
self._add_label(screen, error)
97+
# Partition info (ESP32 only)
98+
try:
99+
self._add_label(screen, f"{lv.SYMBOL.SD_CARD} Partition Info", is_header=True)
100+
from esp32 import Partition
101+
current = Partition(Partition.RUNNING)
102+
self._add_label(screen, f"Partition.RUNNING: {current}")
103+
next_partition = current.get_next_update()
104+
self._add_label(screen, f"Next update partition: {next_partition}")
105+
except Exception as e:
106+
error = f"Could not find partition info because: {e}\nIt's normal to get this error on desktop."
107+
print(error)
108+
self._add_label(screen, error)
119109

120110
# Machine info
121111
try:
@@ -154,16 +144,11 @@ def onCreate(self):
154144
# Display info
155145
try:
156146
self._add_label(screen, f"{lv.SYMBOL.IMAGE} Display", is_header=True)
157-
disp = lv.disp_get_default()
158-
if disp:
159-
hor_res = disp.get_hor_res()
160-
ver_res = disp.get_ver_res()
161-
self._add_label(screen, f"Resolution: {hor_res}x{ver_res}")
162-
try:
163-
dpi = disp.get_dpi()
164-
self._add_label(screen, f"DPI: {dpi}")
165-
except:
166-
pass
147+
hor_res = get_display_width()
148+
ver_res = get_display_height()
149+
self._add_label(screen, f"Resolution: {hor_res}x{ver_res}")
150+
dpi = get_dpi()
151+
self._add_label(screen, f"Dots Per Inch (dpi): {dpi}")
167152
except Exception as e:
168153
print(f"Could not get display info: {e}")
169154

internal_filesystem/lib/mpos/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
# UI utility functions
3232
from .ui.display import (
3333
pct_of_display_width, pct_of_display_height,
34-
get_display_width, get_display_height,
34+
get_display_width, get_display_height, get_dpi,
3535
min_resolution, max_resolution, get_pointer_xy
3636
)
3737
from .ui.event import get_event_name, print_event
@@ -73,7 +73,7 @@
7373
"MposKeyboard",
7474
# UI utility functions
7575
"pct_of_display_width", "pct_of_display_height",
76-
"get_display_width", "get_display_height",
76+
"get_display_width", "get_display_height", "get_dpi",
7777
"min_resolution", "max_resolution", "get_pointer_xy",
7878
"get_event_name", "print_event",
7979
"setContentView", "back_screen",

internal_filesystem/lib/mpos/ui/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from .topmenu import open_bar, close_bar, open_drawer, drawer_open, NOTIFICATION_BAR_HEIGHT
88
from .focus import save_and_clear_current_focusgroup
99
from .display import (
10-
get_display_width, get_display_height,
10+
get_display_width, get_display_height, get_dpi,
1111
pct_of_display_width, pct_of_display_height,
1212
min_resolution, max_resolution,
1313
get_pointer_xy # ← now correct
@@ -28,7 +28,7 @@
2828
"set_theme",
2929
"open_bar", "close_bar", "open_drawer", "drawer_open", "NOTIFICATION_BAR_HEIGHT",
3030
"save_and_clear_current_focusgroup",
31-
"get_display_width", "get_display_height",
31+
"get_display_width", "get_display_height", "get_dpi",
3232
"pct_of_display_width", "pct_of_display_height",
3333
"min_resolution", "max_resolution",
3434
"get_pointer_xy",

internal_filesystem/lib/mpos/ui/display.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33

44
_horizontal_resolution = None
55
_vertical_resolution = None
6+
_dpi = None
67

78
def init_rootscreen():
8-
global _horizontal_resolution, _vertical_resolution
9+
global _horizontal_resolution, _vertical_resolution, _dpi
910
screen = lv.screen_active()
1011
disp = screen.get_display()
1112
_horizontal_resolution = disp.get_horizontal_resolution()
1213
_vertical_resolution = disp.get_vertical_resolution()
13-
print(f"init_rootscreen set _vertical_resolution to {_vertical_resolution}")
14+
_dpi = disp.get_dpi()
15+
print(f"init_rootscreen set resolution to {_horizontal_resolution}x{_vertical_resolution} at {_dpi} DPI")
1416
label = lv.label(screen)
1517
label.set_text("Welcome to MicroPythonOS")
1618
label.center()
@@ -40,11 +42,12 @@ def max_resolution():
4042
return max(_horizontal_resolution, _vertical_resolution)
4143

4244
def get_display_width():
43-
if _horizontal_resolution is None:
44-
_init_resolution()
4545
return _horizontal_resolution
4646

4747
def get_display_height():
48-
if _vertical_resolution is None:
49-
_init_resolution()
5048
return _vertical_resolution
49+
50+
def get_dpi():
51+
print(f"get_dpi_called {_dpi}")
52+
return _dpi
53+

0 commit comments

Comments
 (0)