Files
Ferrari Martino Giordano 57507598cc feat: added support to samples
2024-04-16 16:54:06 +02:00

104 lines
2.2 KiB
Python

import logging
__PATH__ = "."
__CONFIG__ = None
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
nos = 1 if "Samples" not in sig else int(sig["Samples"])
bytes = type_bytes_count(sig["Type"])
tot = noe * nod * nos
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
def set_config(config):
global __CONFIG__
__CONFIG__ = config
def config():
global __CONFIG__
return __CONFIG__
def build():
global __CONFIG__
return str(__CONFIG__.build).upper() == "TRUE"