initial commit
This commit is contained in:
+50
@@ -0,0 +1,50 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user