def colread(mmtr, mtr, dt, colindex): index = mmtr.readindex(dt['addr'], colindex) if index >= 0: # col地址存在 dt['index'] = index dt['addr'] = mmtr.readaddr(index) resp.dl645_read(dt, mtr, index, mmtr) # col直接取数据结构 fe = resp.dl645_makeframe(dt) return fe
def meterread(mtr, dt, indexlist): index = mtr.readindex(dt['addr']) if index in indexlist: # 485表地址存在 dt['index'] = index dt['addr'] = mtr.readaddr(index) resp.dl645_read(dt, mtr, index) fe = resp.dl645_makeframe(dt) return fe return None
mtr = meter485() mtr.addmeter(3, 3) addr = mtr.readaddr(1) index = mtr.readindex(addr) print(addr, index) mtr.run(3600) ins = mtr.readins(1) print(ins[0]) mtr.run(60) ins = mtr.readins(1) print(ins[0]) defultcfg = {'day': 15, 'month': 12, 'hour': 6} mtr.createFreezeHisData(defultcfg) mondata = mtr.readhismon(1, 3) frame = 'FE FE FE FE 68 23 01 00 00 15 23 68 11 04 36 33 B3 35 32 16 ' ret, dt = dl645.dl645_dealframe(frame) print(ret, dt) if ret: index = mtr.readindex(dt['addr']) dt['index'] = index # eng = mtr.readenergy(index) # print(eng) dl645.dl645_read(dt, mtr, index) fe = dl645.dl645_makeframe(dt) print(fe)