Add support for Unicode over serial (#122)

* added utf8 fonts with multi lang charset

* removed icon substring stuff

* synced US-L version
This commit is contained in:
Johannes
2022-04-04 21:12:37 +02:00
committed by GitHub
parent 43d0a95b31
commit 9a19bd9395
60 changed files with 11975 additions and 2789 deletions

View File

@@ -1,100 +1,25 @@
import json
import os
icons = [
"alert-circle-outline",
"lightbulb",
"thermometer",
"gesture-tap-button",
"flash",
"music",
"check-circle-outline",
"close-circle-outline",
"pause",
"play",
"palette",
"window-open",
"weather-cloudy",
"weather-fog",
"weather-hail",
"weather-lightning",
"weather-lightning-rainy",
"weather-night",
"weather-partly-cloudy",
"weather-pouring",
"weather-rainy",
"weather-snowy",
"weather-snowy-rainy",
"weather-sunny",
"weather-windy",
"weather-windy-variant",
"water-percent",
"power",
"fire",
"calendar-sync",
"fan",
"snowflake",
"solar-power",
"battery-charging-medium",
"battery-medium",
"shield-home",
"door-open",
"door-closed",
"window-closed",
"shield-off",
"shield",
"shield-lock",
"shield-airplane",
"bell-ring",
"ray-vertex",
"script-text",
"home-import-outline",
"home-export-outline",
"arrow-up-bold",
"arrow-down-bold",
"cast-audio",
"cast",
"radio",
"fireplace",
"arrow-left-bold",
"arrow-right-bold",
"sofa",
"garage-variant",
"bed",
"soccer",
"silverware-variant"
]
__location__ = os.path.realpath(
os.path.join(os.getcwd(), os.path.dirname(__file__)))
with open(os.path.join(__location__, "icons.json"),'r') as f:
icon_metadata = json.load(f)
icon_nextion_string = ""
icon_name_list = []
for icon_name in icons:
#print(icon_name)
icon = next((item for item in icon_metadata if item["name"] == icon_name), None)
if icon is None:
print(f"WARNING ICON NOT FOUND: {icon_name}")
else:
hex = icon['hex']
s = int(hex, 16)
#print(chr(s), end = '')
icon_nextion_string += chr(s)
icon_name_list.append(icon_name)
# write mapping lib for python
with open(os.path.join(__location__, "../../../apps/nspanel-lovelace-ui/luibackend", "icon_mapping.py"), 'w') as f:
f.write("icons = {\n")
for idx, val in enumerate(icon_name_list):
f.write(f" '{val}': {idx},\n")
for icon in icon_metadata:
iconchar = chr(int(icon['hex'], 16))
name = icon["name"]
f.write(f" '{name}': '{iconchar}',\n")
f.write("}\n")
f.write("""
def get_icon_id(ma_name):
ma_name = ma_name.replace("mdi:","")
if ma_name in icons:
return icons[ma_name]
else:
@@ -107,13 +32,9 @@ with open(os.path.join(__location__, "../..","icons.md"), 'w') as f:
# Icons IDs
This file contains the Icons IDs included in the display firmware, addressable via serial.
ID | MD Icon Name | Icon
-- | ------------ | ----
MD Icon Name | Icon
------------ | ----
""")
for idx, val in enumerate(icon_name_list):
f.write(f"{idx} | {val} | ![{val}](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/{val}.svg)\n")
print("=== STRING for HMI Project ===")
print("=== Put the following string into the txt field in nextion ===")
print(icon_nextion_string)
for icon in icon_metadata:
val = icon["name"]
f.write(f"mdi:{val} | ![{val}](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/{val}.svg)\n")

View File

@@ -7,7 +7,7 @@ head = sharedhead + """
""" + navigation
print(head)
start = 3
for i in range(1,7):
for i in range(1,5):
idxstart = start + (i-1)*6
item = f"""
// get Type
@@ -28,9 +28,7 @@ for i in range(1,7):
}}else
{{
// change icon
spstr strCommand.txt,tTmp.txt,"~",{idxstart+2}
covx tTmp.txt,sys0,0,0
substr pageIcons.tIcons.txt,tIcon{i}.txt,sys0,1
spstr strCommand.txt,tIcon{i}.txt,"~",{idxstart+2}
vis tIcon{i},1
// change icon color
spstr strCommand.txt,tTmp.txt,"~",{idxstart+3}

View File

@@ -21,9 +21,7 @@ for i in range(1,7):
}}else
{{
// change icon
spstr strCommand.txt,tTmp.txt,",",{idxstart+2}
covx tTmp.txt,sys0,0,0
substr pageIcons.tIcons.txt,bEntity{i}.txt,sys0,1
spstr strCommand.txt,bEntity{i}.txt,",",{idxstart+2}
vis bEntity{i},1
// change icon color
spstr strCommand.txt,tTmp.txt,",",{idxstart+3}

View File

@@ -46,8 +46,7 @@ for i in range(0,9):
if(tTmp.txt!="")
{{
// set icon
covx tTmp.txt,sys0,0,0
substr pageIcons.tIcons.txt,bt{i}.txt,sys0,1
bt{i}.txt=tTmp.txt
// set text color on active state
spstr strCommand.txt,tTmp.txt,",",{idxstart+1}
covx tTmp.txt,bt{i}.pco2,0,0