2025-09-08 01:23:14 +08:00
|
|
|
|
from pyutils import *
|
2025-09-08 13:12:18 +08:00
|
|
|
|
from .environment import *
|
2025-09-08 01:23:14 +08:00
|
|
|
|
|
|
|
|
|
|
def tc1():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
2025-09-08 13:12:18 +08:00
|
|
|
|
dev = get_slv_dev_num()
|
|
|
|
|
|
print("DEV:", dev)
|
2025-09-08 01:23:14 +08:00
|
|
|
|
|
|
|
|
|
|
gen_file_def = "manydev_tc01"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = f"{dev}个设备, 准备一下开发环境,发送一个广播包。\\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm1,2个读
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
|
|
|
|
|
|
set_if_code = ""
|
|
|
|
|
|
for i in range(dev - 4):
|
|
|
|
|
|
set_if_code = set_if_code + genIFRwDataCode(i + 5, 0x09, True, 1, [0, ], False, iface=1)
|
|
|
|
|
|
|
|
|
|
|
|
clear_int_code = ""
|
|
|
|
|
|
for i in range(dev + 1):
|
|
|
|
|
|
clear_int_code = clear_int_code + genIFRwDataCode(i, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
read_int_code = ""
|
|
|
|
|
|
for i in range(dev + 1):
|
|
|
|
|
|
read_int_code = read_int_code + genIFRwDataCode(i, 0x74, False, 4)
|
|
|
|
|
|
|
|
|
|
|
|
init_slave_code = ""
|
|
|
|
|
|
for i in range(dev):
|
|
|
|
|
|
init_slave_code = init_slave_code + genIFRwDataCode(1 + i, 0x0, True, 1, [0x2, ]) + genIFRwDataCode(1 + i, 0x7c, True, 2, [0x10, 0x80])
|
|
|
|
|
|
|
|
|
|
|
|
read_dev_code = ""
|
|
|
|
|
|
for i in range(dev + 1):
|
|
|
|
|
|
read_dev_code = read_dev_code + genIFRwDataCode(i, 0x0, False, 1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+set_if_code
|
|
|
|
|
|
+init_slave_code
|
|
|
|
|
|
+clear_int_code
|
|
|
|
|
|
+read_int_code
|
|
|
|
|
|
+read_dev_code
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
|
|
|
|
|
|
+clear_int_code
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_step02"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
data = [0x3f, 0xff]
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genMessageCode("--设置顺序地址")
|
|
|
|
|
|
+genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
2025-09-08 13:12:18 +08:00
|
|
|
|
#+ "#10000000"
|
2025-09-08 01:23:14 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除主中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
gen_file_def_ap = gen_file_def+"_step03"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genMessageCode("--设置环境,进行第二次嗅探"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
|
|
|
|
|
|
+clear_int_code
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
gen_file_def_ap = gen_file_def+"_step04"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
for i in range(dev):
|
|
|
|
|
|
genPkt.addSubPkt(i + 1, 0, 0x1000, 0x0, 2, [0, 0])
|
|
|
|
|
|
|
|
|
|
|
|
prepare_data_code = ""
|
|
|
|
|
|
for i in range(dev):
|
|
|
|
|
|
prepare_data_code = prepare_data_code + genSlvSMWriteData(i + 1, 1, 2, [i, i + 1])
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(prepare_data_code)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
2025-09-08 13:12:18 +08:00
|
|
|
|
#+ "#10000000"
|
2025-09-08 01:23:14 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
|
|
|
|
|
|
+clear_int_code
|
2025-09-08 13:12:18 +08:00
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
gen_file_def_ap = gen_file_def+"_step05"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
#for i in range(dev):
|
|
|
|
|
|
# genPkt.addSubPkt(i + 1, 0, 0x1000, 0x0, 2, [0, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x302, 0xe, 2, [8, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x800, 0xe, 8, list(range(8)))
|
|
|
|
|
|
|
|
|
|
|
|
read_data_code = ""
|
|
|
|
|
|
for i in range(dev):
|
|
|
|
|
|
read_data_code = read_data_code + genSlvSMReadData(i + 1, 0, 8)
|
|
|
|
|
|
|
|
|
|
|
|
#genPkt.addBeforeExc(prepare_data_code)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
2025-09-08 01:23:14 +08:00
|
|
|
|
|
2025-09-08 13:12:18 +08:00
|
|
|
|
+clear_int_code
|
|
|
|
|
|
+read_data_code
|
2025-09-08 01:23:14 +08:00
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
2025-09-08 13:12:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
gen_file_def_ap = gen_file_def+"_step06"
|
|
|
|
|
|
sm_idx = 0
|
2025-09-08 01:23:14 +08:00
|
|
|
|
|
2025-09-08 13:12:18 +08:00
|
|
|
|
#for i in range(dev):
|
|
|
|
|
|
# genPkt.addSubPkt(i + 1, 0, 0x1000, 0x0, 2, [0, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x302, 0xe, 2, [2, 0])
|
|
|
|
|
|
for i in range(dev):
|
|
|
|
|
|
genPkt.addSubPkt(i + 1, 0, 0x0800, 0x1, 2, [i & 0xff, (i + 1) & 0xff])
|
|
|
|
|
|
|
|
|
|
|
|
read_data_code = ""
|
|
|
|
|
|
for i in range(dev):
|
|
|
|
|
|
read_data_code = read_data_code + genSlvSMReadData(i + 1, 0, 2)
|
|
|
|
|
|
|
|
|
|
|
|
#genPkt.addBeforeExc(prepare_data_code)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
|
|
|
|
|
|
|
|
|
|
|
+clear_int_code
|
|
|
|
|
|
+read_data_code
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
2025-09-08 01:23:14 +08:00
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|