"""本主题专属离线算法，仅读取同目录合成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 address in data['addresses']:
 assert 0<=address<=32767
 net=(address>>8)&127;sub=(address>>4)&15;uni=address&15
 assert (net<<8)|(sub<<4)|uni==address
 rows.append({'port_address':address,'net':net,'sub_net':sub,'universe_nibble':uni,'direct_display':address,'plus_one_display':address+1,'deprecated_in_1_4dp':address==0})
assert rows[2]['sub_net']==1 and rows[3]['net']==1
result={'addresses':rows,'actual_UI_convention':'需目标软件手册确认','gateway_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))
