"""本主题专属离线算法，仅读取同目录合成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 text in data['messages']:
 status,note,velocity=bytes.fromhex(text);assert status>>4==9
 c=(status&15)+1
 assert (0x90|(c-1))==status
 rows.append({'hex':text,'channel':c,'wire_nibble':status&15,'note':note,'virtual_route':'zone-'+str(c)})
selected=[r for r in rows if r['channel']==data['filter_channel']]
assert [r['channel'] for r in rows]==[1,2,16] and len(selected)==1
result={'routes':rows,'channel_filter':selected,'application_omni_routes':rows,'hardware_mode_changed':False}
(BASE/'result.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
print(json.dumps(result,ensure_ascii=False))
