from pyutils import * def tc1(): genPkt = GenPkt() dev = 128 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) + "#10000000" +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) + "#10000000" +genReadAckPktCode(gen_file_def_ap, sm_idx) +clear_int_code +genTcEndFrameCode(gen_file_def) ) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) return gen_file_def