feat: DB管线补全 + 新增orchestrator_db/program_schema/to_sql + 清理临时脚本

This commit is contained in:
hangshuo652
2026-07-11 14:55:52 +08:00
parent 40e8a50ab4
commit af37e33b98
32 changed files with 3232 additions and 255 deletions
+30
View File
@@ -236,3 +236,33 @@ def _unpack_record(data: bytes, fd_field_dicts: list[dict]) -> dict:
record[field_dict['name']] = unpack_value(data[offset:offset + slen], field_dict)
offset += slen
return record
def write_variable_file(file_path: str, fd_field_dicts: list[dict],
records: list[dict]) -> int:
"""写入 RECORDING MODE V 文件(带 4 字节 RDW 前缀)。
RDW: Little-Endian unsigned short 记录长度(含自身4字节)
Args:
file_path: 输出路径
fd_field_dicts: FD 字段定义列表
records: 记录列表
Returns:
int: 写入的记录数
"""
with open(file_path, 'wb') as f:
for record in records:
data = bytearray()
for field_dict in fd_field_dicts:
val = record.get(field_dict['name'], '')
packed = pack_value(val, field_dict)
data.extend(packed)
record_len = len(data) + 4
rdw = struct.pack('<H', record_len)
f.write(rdw)
f.write(b'\x00\x00')
f.write(data)
logger.info(f" wrote {len(records)} records to {file_path}")
return len(records)