from pyutils import * def bringup(): gen_file_def = "sys_bringup" sm_idx = 0 tc_des = "系统环境建立,包括:1.配置主从栈的角色;2.网络建立,嗅探、设置顺序地址、嗅探;3.配置中断。\\n" \ + "\\n注意:网络建立第一次嗅探包发送主要是为了建立拓扑,每个从站都知道了自己的邻居状况;发送顺序地址,\\n"\ + "则是让每个从站拥有合适的地址。第二次发送嗅探包非必要,主要是用于更新从站的邻居信息。" genPkt = GenPkt() genPkt.clean() genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) +genMessageCode("--读取中断状态") +genIFRwDataCode(0, 0x74, False, 4) +genIFRwDataCode(1, 0x74, False, 4) +genIFRwDataCode(2, 0x74, False, 4) +genIFRwDataCode(3, 0x74, False, 4) +genIFRwDataCode(4, 0x74, False, 4) +genMessageCode("--清除中断") +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) ) main_dev = [0x01, ] slave_dev =[0x02, ] genPkt.addAfterExc(genMessageCode("--设置主站,协议栈工作在主站模式") +genIFRwDataCode(0, 0x0, True, 1, main_dev) +"#5000\n" +genMessageCode("--设置从站,协议栈工作在从站模式") +genIFRwDataCode(1, 0x0, True, 1, slave_dev) +genIFRwDataCode(2, 0x0, True, 1, slave_dev) +genIFRwDataCode(3, 0x0, True, 1, slave_dev) +genIFRwDataCode(4, 0x0, True, 1, slave_dev) +genMessageCode("--读取寄存器,检查相关的配置") +genIFRwDataCode(0, 0x0, False, 1) +genIFRwDataCode(1, 0x0, False, 1) +genIFRwDataCode(2, 0x0, False, 1) +genIFRwDataCode(3, 0x0, False, 1) +genIFRwDataCode(4, 0x0, False, 1) ) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.clean() genPkt.setPktType(1) gen_file_def_ap = gen_file_def+"_step01" 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) +genMessageCode("--嗅探后检查链路状态寄存器") +genIFRwDataCode(1, 0xc0, False, 4) +genIFRwDataCode(2, 0xc0, False, 4) +genIFRwDataCode(3, 0xc0, False, 4) +genIFRwDataCode(4, 0xc0, False, 4) ) 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 + "_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) +genReadAckPktCode(gen_file_def_ap, sm_idx) #+genTcEndFrameCode(gen_file_def) +genIFRwDataCode(1, 0xc0, False, 4) +genIFRwDataCode(2, 0xc0, False, 4) +genIFRwDataCode(3, 0xc0, False, 4) +genIFRwDataCode(4, 0xc0, False, 4) ) 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("--设置环境,进行第二次嗅探")) int_data=[0x00, 0x81] clear_int = [0xff, 0xff, 0xff, 0xff] main_int_en = [0x03, 0x00, 0x00, 0xf0] slave_int_en= [0x00, 0x00, 0x00, 0xf0] 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) +genMessageCode("--嗅探后检查链路状态寄存器") +genIFRwDataCode(1, 0xc0, False, 4) +genIFRwDataCode(2, 0xc0, False, 4) +genIFRwDataCode(3, 0xc0, False, 4) +genIFRwDataCode(4, 0xc0, False, 4) +genMessageCode("--使能中断") +genIFRwDataCode(0, 0x70, True, 4, main_int_en) +genIFRwDataCode(1, 0x70, True, 4, slave_int_en) +genIFRwDataCode(2, 0x70, True, 4, slave_int_en) +genIFRwDataCode(3, 0x70, True, 4, slave_int_en) +genIFRwDataCode(4, 0x70, True, 4, slave_int_en) +genMessageCode("--设置中断为脉冲模式") +genIFRwDataCode(0, 0x7c, True, 2, int_data) +genIFRwDataCode(1, 0x7c, True, 2, int_data) +genIFRwDataCode(2, 0x7c, True, 2, int_data) +genIFRwDataCode(3, 0x7c, True, 2, int_data) +genIFRwDataCode(4, 0x7c, True, 2, int_data) +genMessageCode("--清除中断") +genIFRwDataCode(0, 0x78, True, 4, clear_int) +genIFRwDataCode(1, 0x78, True, 4, clear_int) +genIFRwDataCode(2, 0x78, True, 4, clear_int) +genIFRwDataCode(3, 0x78, True, 4, clear_int) +genIFRwDataCode(4, 0x78, True, 4, clear_int) +genMessageCode("--读取中断状态") +genIFRwDataCode(0, 0x74, False, 4) +genIFRwDataCode(1, 0x74, False, 4) +genIFRwDataCode(2, 0x74, False, 4) +genIFRwDataCode(3, 0x74, False, 4) +genIFRwDataCode(4, 0x74, False, 4) +genMessageCode("--清除中断") +genIFRwDataCode(0, 0x78, True, 4, clear_int) +genIFRwDataCode(1, 0x78, True, 4, clear_int) +genIFRwDataCode(2, 0x78, True, 4, clear_int) +genIFRwDataCode(3, 0x78, True, 4, clear_int) +genIFRwDataCode(4, 0x78, True, 4, clear_int) +genMessageCode("--读取中断状态") +genIFRwDataCode(0, 0x74, False, 4) +genIFRwDataCode(1, 0x74, False, 4) +genIFRwDataCode(2, 0x74, False, 4) +genIFRwDataCode(3, 0x74, False, 4) +genIFRwDataCode(4, 0x74, False, 4) +genMessageCode("--读取看门狗") +genIFRwDataCode(0, 0x400, False, 8) +genIFRwDataCode(1, 0x400, False, 8) +genIFRwDataCode(2, 0x400, False, 8) +genIFRwDataCode(3, 0x400, False, 8) +genIFRwDataCode(4, 0x400, False, 8) +genTcEndFrameCode(gen_file_def) ) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) add_tc_2_runlist(gen_file_def) def teardown(): #add_tc_2_runlist("") pass