v.0.4.6 screen_text param display
This commit is contained in:
@@ -2,6 +2,6 @@ from .font_3x5 import font_3x5
|
|||||||
from .font_5x7 import font_5x7
|
from .font_5x7 import font_5x7
|
||||||
from .font_8x8 import font_8x8
|
from .font_8x8 import font_8x8
|
||||||
from .font_16x16 import font_16x16
|
from .font_16x16 import font_16x16
|
||||||
from .fonts_utils import *
|
from .fonts_utils import char_width
|
||||||
|
|
||||||
__all__ = ['font_3x5', 'font_5x7', 'font_8x8', 'font_16x16']
|
__all__ = ['font_3x5', 'font_5x7', 'font_8x8', 'font_16x16', 'char_width']
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
import app.utils as utils
|
import app.utils as utils
|
||||||
|
|
||||||
|
# FIXME: der Import klappt nicht !!!
|
||||||
|
# from app.display.neopixel_64x64 import NeoPixel_64x64
|
||||||
|
# from ...display.neopixel_64x64 import NeoPixel_64x64
|
||||||
|
|
||||||
|
|
||||||
def char_width(char_matrix) -> int:
|
def char_width(char_matrix) -> int:
|
||||||
"""Berechnung der Bits für die Zeichenbreite
|
"""Berechnung der Bits für die Zeichenbreite
|
||||||
@@ -85,7 +89,7 @@ def align_font(font, debug=False):
|
|||||||
return f'#keys: {len(font)}'
|
return f'#keys: {len(font)}'
|
||||||
|
|
||||||
|
|
||||||
def screen_text(text: str, font, screen_height: int, screen_width: int):
|
def screen_text(text: str, display: NeoPixel_64x64):
|
||||||
"""Text für einen Screen anpassen,
|
"""Text für einen Screen anpassen,
|
||||||
Anzahl der Zeichen je Zeile begrenzen,
|
Anzahl der Zeichen je Zeile begrenzen,
|
||||||
ebenso wird die Höhe des Screen brücksichtigt
|
ebenso wird die Höhe des Screen brücksichtigt
|
||||||
@@ -102,17 +106,16 @@ def screen_text(text: str, font, screen_height: int, screen_width: int):
|
|||||||
pixs = 0
|
pixs = 0
|
||||||
visible_text = ''
|
visible_text = ''
|
||||||
for a in txt:
|
for a in txt:
|
||||||
pixs += char_width(font[a]) + 1
|
pixs += char_width(display.selected_font[a]) + 1
|
||||||
if pixs > screen_width:
|
if pixs > display.MATRIX_WIDTH:
|
||||||
# Zeilenende erreicht
|
# Zeilenende erreicht
|
||||||
break
|
break
|
||||||
visible_text += a
|
visible_text += a
|
||||||
|
|
||||||
return visible_text
|
return visible_text
|
||||||
|
|
||||||
f_height: int = font_height(font)
|
|
||||||
# Ganzzahl Division
|
# Ganzzahl Division
|
||||||
max_visible_rows = screen_height // f_height
|
max_visible_rows = display.MATRIX_HEIGHT // display.font_height
|
||||||
print(f'rows_visible: {max_visible_rows}')
|
print(f'rows_visible: {max_visible_rows}')
|
||||||
|
|
||||||
text_left = text
|
text_left = text
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from machine import Pin, RTC
|
from machine import Pin, RTC # type: ignore
|
||||||
from neopixel import NeoPixel
|
from neopixel import NeoPixel # type: ignore
|
||||||
from .fonts.fonts_utils import char_width as charwidth
|
from .fonts import char_width as charwidth
|
||||||
|
|
||||||
from .fonts.font_5x7 import font_5x7
|
from .fonts.font_5x7 import font_5x7
|
||||||
from ..utils.colors import GRAY, RAINBOW, BLACK, WHITE, LIME
|
from ..utils.colors import GRAY, RAINBOW, BLACK, WHITE, LIME
|
||||||
@@ -104,7 +104,9 @@ class NeoPixel_64x64(NeoPixel):
|
|||||||
[
|
[
|
||||||
# print(xpos, ypos)
|
# print(xpos, ypos)
|
||||||
self.set_pixel(xpos, ypos, GRAY)
|
self.set_pixel(xpos, ypos, GRAY)
|
||||||
for xpos in range(x, x + char_width) # 8 because full with of character representation
|
for xpos in range(
|
||||||
|
x, x + char_width
|
||||||
|
) # 8 because full with of character representation
|
||||||
for ypos in range(y, y + self.font_height)
|
for ypos in range(y, y + self.font_height)
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -149,7 +151,9 @@ class NeoPixel_64x64(NeoPixel):
|
|||||||
|
|
||||||
self.write()
|
self.write()
|
||||||
|
|
||||||
def vertical_floating_text(self, text, x, color=RAINBOW[0], float_range=3, speed=0.2, duration=10):
|
def vertical_floating_text(
|
||||||
|
self, text, x, color=RAINBOW[0], float_range=3, speed=0.2, duration=10
|
||||||
|
):
|
||||||
"""
|
"""
|
||||||
Vertical floating text animation
|
Vertical floating text animation
|
||||||
|
|
||||||
@@ -180,7 +184,9 @@ class NeoPixel_64x64(NeoPixel):
|
|||||||
self.write()
|
self.write()
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
|
|
||||||
def horizontal_floating_text(self, text, y, color=RAINBOW[0], float_range=3, speed=0.2, duration=10):
|
def horizontal_floating_text(
|
||||||
|
self, text, y, color=RAINBOW[0], float_range=3, speed=0.2, duration=10
|
||||||
|
):
|
||||||
"""
|
"""
|
||||||
Horizontal floating text animation
|
Horizontal floating text animation
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ def fonts_check(display: NeoPixel_64x64, font, pretty=False) -> None:
|
|||||||
text_left = alphanum
|
text_left = alphanum
|
||||||
while text_left:
|
while text_left:
|
||||||
# Text entsprechend des Display splitten
|
# Text entsprechend des Display splitten
|
||||||
scr_txt_dict = screen_text(text=text_left, screen_width=display.MATRIX_WIDTH, screen_height=display.MATRIX_HEIGHT, font=font)
|
scr_txt_dict = screen_text(text=text_left, display=display)
|
||||||
print(f'scr_txt: {scr_txt_dict}')
|
print(f'scr_txt: {scr_txt_dict}')
|
||||||
|
|
||||||
display.clear()
|
display.clear()
|
||||||
|
|||||||
4
main.py
4
main.py
@@ -1,4 +1,4 @@
|
|||||||
# from machine import Pin, ADC # type: ignore
|
from machine import Pin, ADC # type: ignore
|
||||||
from app.display.neopixel_64x64 import NeoPixel_64x64
|
from app.display.neopixel_64x64 import NeoPixel_64x64
|
||||||
import app.display.fonts as fonts
|
import app.display.fonts as fonts
|
||||||
import app.utils as utils
|
import app.utils as utils
|
||||||
@@ -8,6 +8,6 @@ if __name__ == '__main__':
|
|||||||
display = NeoPixel_64x64()
|
display = NeoPixel_64x64()
|
||||||
|
|
||||||
# tryout.emojis_check(display)
|
# tryout.emojis_check(display)
|
||||||
# tryout.fonts_check(display, fonts.font_8x8, pretty=False)
|
tryout.fonts_check(display, fonts.font_8x8, pretty=False)
|
||||||
tryout.weather_check(display, test_mode=False)
|
tryout.weather_check(display, test_mode=False)
|
||||||
utils.show_system_load()
|
utils.show_system_load()
|
||||||
|
|||||||
Reference in New Issue
Block a user