"""本主题专属离线算法，仅读取同目录合成JSON，不联网、不控制设备。"""
import csv, json, math, re, struct
from pathlib import Path
from fractions import Fraction
BASE=Path(__file__).resolve().parent
data=json.loads((BASE/'input.json').read_text(encoding='utf-8'))['data']
rows=[]
for peak in data['peaks']:
 relative=20*math.log10(peak) if peak>0 else None
 rows.append({'peak':peak,'relative_db':relative,'reference_dbfs':relative+data['reference_dbfs_at_peak_1'] if relative is not None else None})
assert [round(x['reference_dbfs']) for x in rows[1:]]==[-40,-20,0]
result={'reference':data['reference'],'rows':rows,'analog_output_measured':False,'null_means':'零幅度对数为负无穷，不是已测零分贝'}
(BASE/'result.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
print(json.dumps(result,ensure_ascii=False))
