Files
esp32-pager/generate.py
T
Thies Mueller 8228681f57 initial commit
2026-06-10 14:20:15 +02:00

51 lines
1.2 KiB
Python

import os
import re
SUB_DIR = "subs"
OUT_FILE = "esp32/signals.h"
def parse_raw(file_path):
with open(file_path, "r") as f:
content = f.read()
raw_lines = re.findall(r"RAW_Data:\s*(.*)", content)
values = []
for line in raw_lines:
parts = line.strip().split()
for p in parts:
try:
values.append(int(p))
except:
pass
return values
signals = {}
for fname in os.listdir(SUB_DIR):
if fname.endswith(".sub"):
key = os.path.splitext(fname)[0]
signals[key] = parse_raw(os.path.join(SUB_DIR, fname))
with open(OUT_FILE, "w") as f:
f.write("#pragma once\n\n")
for name, data in signals.items():
f.write(f"const int {name}_raw[] = {{\n")
f.write(", ".join(map(str, data)))
f.write("\n};\n")
f.write(f"const int {name}_len = {len(data)};\n\n")
f.write("struct SignalDef { const char* name; const int* data; int len; };\n\n")
f.write("SignalDef signals[] = {\n")
for name in signals:
f.write(f' {{"{name}", {name}_raw, {name}_len}},\n')
f.write("};\n")
f.write(f"const int SIGNAL_COUNT = {len(signals)};\n")
print("signals.h generated")