feat: better code structure

This commit is contained in:
Ferrari Martino Giordano
2024-03-13 10:03:18 +01:00
parent 67e57d5372
commit 79f539a290
3 changed files with 506 additions and 488 deletions
+86
View File
@@ -0,0 +1,86 @@
import logging
__PATH__ = "."
def signal(obj, label, type):
return (obj, label, type)
def edge(src, trg, thread):
return (src, trg, thread)
def format_name(name):
return name.replace(".", "_")
def type_bytes_count(mtype):
if mtype.startswith("uint"):
return int(mtype[4:]) // 8
if mtype.startswith("int"):
return int(mtype[3:]) // 8
if mtype.startswith("float"):
return int(mtype[5:]) // 8
if mtype == "bool":
return 1
logging.debug(f"Type `{mtype}` unknow, size 1 byte")
return 1
def signal_byte_size(sig):
noe = 1 if "NumberOfElements" not in sig else int(sig["NumberOfElements"])
nod = 1 if "NumberOfDimensions" not in sig else int(sig["NumberOfDimensions"])
nod = nod if nod > 0 else 1
noe = noe if noe > 0 else 1
bytes = type_bytes_count(sig["Type"])
tot = noe * nod
if "Ranges" in sig:
tot = 0
for i0, ie in sig["Ranges"]:
tot += int(ie) - int(i0) + 1
return tot * bytes
def signal_type(sig):
type_name = sig["Type"]
noe = int(sig["NumberOfElements"]) if "NumberOfElements" in sig else 1
nod = int(sig["NumberOfDimensions"]) if "NumberOfDimensions" in sig else 1
nod = nod if nod > 0 else 1
dim = noe * nod
range = sig["Ranges"] if "Ranges" in sig else []
return (type_name, dim, range)
def type_to_string(mtype):
range = ""
if mtype[2]:
range = (
"("
+ ", ".join(
[
str(i0) if i0 == i1 else (str(i0) + ":" + str(int(i1) + 1))
for i0, i1 in mtype[2]
]
)
+ ")"
)
if mtype[1] != 1:
return f"{mtype[0]}[{mtype[1]}]{range}"
return mtype[0] + range
def signal_alias(name, signal):
return name if "Alias" not in signal else signal["Alias"]
def path():
global __PATH__
return __PATH__
def set_path(path):
global __PATH__
__PATH__ = path