2025-07-30 15:50:16 +08:00
|
|
|
|
from pyutils import *
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc1():
|
|
|
|
|
|
genPkt = GenPkt()
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc01"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 00:42:41 +08:00
|
|
|
|
tc_des = "发送一个包,多个子包,单播读,测试SM1发送数据。检查中断、检查SMx的状态。\\n"
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm1,2个读
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
#genPkt.addSubPkt(0x02, 0, 0x0830, 0x2, 56, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x00, 0x0, 64, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0xc0, 0x0, 64, None)
|
|
|
|
|
|
#genPkt.addSubPkt(10, 2, 0x300, 0x2, 4, None)
|
|
|
|
|
|
#genPkt.addSubPkt(11, 1, 0x300, 0x2, 4, None)
|
|
|
|
|
|
sm_idx = 1
|
|
|
|
|
|
|
2025-09-04 06:50:15 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-04 10:49:48 +08:00
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-08-04 10:49:48 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
2025-08-05 10:00:46 +08:00
|
|
|
|
+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])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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)
|
2025-08-04 00:42:41 +08:00
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
2025-07-30 22:59:06 +08:00
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
def tc2():
|
|
|
|
|
|
genPkt = GenPkt()
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc02"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 00:42:41 +08:00
|
|
|
|
tc_des = "广播读,一次性读取从0x0开始的128个字节的数据。读的时候,报文中的数据和对应的\\n"\
|
|
|
|
|
|
+ "寄存器数据位与后放入报文中。"
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm2,广播读
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x00, 0xd, 128, None)
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 2
|
|
|
|
|
|
|
2025-09-04 06:50:15 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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("--清除中断")
|
2025-08-05 10:00:46 +08:00
|
|
|
|
+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])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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)
|
2025-08-04 00:42:41 +08:00
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
2025-07-30 22:59:06 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
def tc3():
|
|
|
|
|
|
genPkt = GenPkt()
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc03"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 00:42:41 +08:00
|
|
|
|
tc_des = "广播写,发送数据长度到每个设备中;然后再紧跟发送的数据。\\n" \
|
|
|
|
|
|
+ "所有从站接收到相同的数据。"
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>交换数据 SMx, 两个广播写
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
data = bytearray(b"\0" * 10)
|
|
|
|
|
|
data[0] = 16
|
|
|
|
|
|
data[1] = 0
|
2025-08-04 00:42:41 +08:00
|
|
|
|
genPkt.addSubPkt(1278, 0, 0x0302, 0xe, 2, data)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
data = bytearray(b"\0"*100)
|
|
|
|
|
|
for i in range(100):
|
|
|
|
|
|
data[i] = i + 1
|
2025-08-04 00:42:41 +08:00
|
|
|
|
genPkt.addSubPkt(1188, 0, 0x0800, 0xe, 16, data)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
sm_idx = 3
|
|
|
|
|
|
|
2025-09-04 06:50:15 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-04 00:42:41 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取广播写入的数据")
|
|
|
|
|
|
+genSlvSMReadData(1, 0, 16)
|
|
|
|
|
|
+genSlvSMReadData(2, 0, 16)
|
|
|
|
|
|
+genSlvSMReadData(3, 0, 16)
|
|
|
|
|
|
+genSlvSMReadData(4, 0, 16)
|
|
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+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("--清除中断")
|
2025-08-05 10:00:46 +08:00
|
|
|
|
+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])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
2025-07-30 22:59:06 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
def tc4():
|
|
|
|
|
|
genPkt = GenPkt()
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc04"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 18:28:57 +08:00
|
|
|
|
tc_des = "发送带有超出系统顺序地址和顺序编号的子包,子包中有写入、有读取;没有处理的包\\n" \
|
|
|
|
|
|
+ "其工作计数应为0。"
|
2025-07-30 15:50:16 +08:00
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包,一个读、一个写,增加5个随机包(需要在文件里确认)
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x0840, 0x1, 56, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x1040, 0x0, 56, None)
|
|
|
|
|
|
for i in range(5):
|
2025-08-04 18:28:57 +08:00
|
|
|
|
genPkt.addSubPkt(3288+i, 0,
|
|
|
|
|
|
0xDF00+i, 0x0,
|
2025-07-30 15:50:16 +08:00
|
|
|
|
56, None)
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
2025-09-04 06:50:15 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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("--清除中断")
|
2025-08-05 10:00:46 +08:00
|
|
|
|
+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])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
2025-07-30 22:59:06 +08:00
|
|
|
|
return gen_file_def
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
def tc5():
|
|
|
|
|
|
genPkt = GenPkt()
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc05"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 18:28:57 +08:00
|
|
|
|
tc_des = "发送单播子包,向4个从设备分别写入数据。\\n"
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包0,用来操作sync
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
sm_size = 64
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data = bytearray(b"\0"*100)
|
|
|
|
|
|
data[0] = 0 #0x0300
|
|
|
|
|
|
data[1] = 0 #0x0301
|
2025-08-04 18:28:57 +08:00
|
|
|
|
data[2] = sm_size #0x302 长度1
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[3] = 0 #0x303 长度2
|
|
|
|
|
|
data[4] = 0
|
|
|
|
|
|
data[5] = 0
|
2025-08-04 18:28:57 +08:00
|
|
|
|
data[6] = sm_size
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[7] = 0
|
|
|
|
|
|
data[8] = 0
|
|
|
|
|
|
data[9] = 0
|
2025-08-04 18:28:57 +08:00
|
|
|
|
data[10] = sm_size
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[11] = 0
|
|
|
|
|
|
data[12] = 0
|
|
|
|
|
|
data[13] = 0
|
2025-08-04 18:28:57 +08:00
|
|
|
|
data[14] = sm_size
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[15] = 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x0300, 0x1, 4, data) #sm0
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x0308, 0x1, 4, data) #sm2
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x0310, 0x1, 4, data) #sm4
|
|
|
|
|
|
genPkt.addSubPkt(0x04, 0, 0x0318, 0x1, 4, data) #sm6
|
|
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data = bytearray(b"\0"*100)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
for i in range(sm_size):
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[i] = i
|
|
|
|
|
|
data[10] = ord('B')
|
|
|
|
|
|
data[11] = ord('A')
|
2025-08-04 18:28:57 +08:00
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x0800, 0x1, sm_size, data)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
data = bytearray(b"\0"*100)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
for i in range(sm_size):
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[i] = i
|
|
|
|
|
|
data[11] = ord('B')
|
|
|
|
|
|
data[12] = ord('A')
|
2025-08-04 18:28:57 +08:00
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x1800, 0x1, sm_size, data)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
data = bytearray(b"\0"*100)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
for i in range(sm_size):
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[i] = i
|
|
|
|
|
|
data[12] = ord('B')
|
|
|
|
|
|
data[13] = ord('A')
|
2025-08-04 18:28:57 +08:00
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x2800, 0x1, sm_size, data)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
data = bytearray(b"\0"*100)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
for i in range(sm_size):
|
2025-07-30 15:50:16 +08:00
|
|
|
|
data[i] = i
|
|
|
|
|
|
data[13] = ord('B')
|
|
|
|
|
|
data[14] = ord('A')
|
2025-08-04 18:28:57 +08:00
|
|
|
|
genPkt.addSubPkt(0x04, 0, 0x3800, 0x1, sm_size, data)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
2025-09-04 06:50:15 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genSlvSMReadData(1, 2, sm_size)
|
|
|
|
|
|
+genSlvSMReadData(2, 0, sm_size)
|
|
|
|
|
|
+genSlvSMReadData(3, 4, sm_size)
|
|
|
|
|
|
+genSlvSMReadData(4, 6, sm_size)
|
|
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
2025-07-30 22:59:06 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
def tc6():
|
|
|
|
|
|
genPkt = GenPkt()
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc06"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 18:28:57 +08:00
|
|
|
|
tc_des = "从4个从站中读取数据,并从对应的位置读取SM1中的数据长度。\\n"
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包2
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+ genSlvSMWriteData(3, 1, 129)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
+ genSlvSMWriteData(4, 1, 140)
|
|
|
|
|
|
+ genSlvSMWriteData(1, 1, 128)
|
|
|
|
|
|
+ genSlvSMWriteData(2, 1, 152))
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(3, 0, 0x1000, 0x0, 129, b"\0"*129)
|
|
|
|
|
|
genPkt.addSubPkt(4, 0, 0x1000, 0x0, 140, b"\0"*140)
|
|
|
|
|
|
genPkt.addSubPkt(1, 0, 0x1000, 0x0, 128, b"\0"*128)
|
|
|
|
|
|
genPkt.addSubPkt(2, 0, 0x1000, 0x0, 152, b"\0"*152)
|
|
|
|
|
|
genPkt.addSubPkt(1, 0, 0x0306, 0x0, 2, b"\0"*2)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
genPkt.addSubPkt(2, 0, 0x0306, 0x0, 2, b"\0"*2)
|
|
|
|
|
|
genPkt.addSubPkt(3, 0, 0x0306, 0x0, 2, b"\0"*2)
|
|
|
|
|
|
genPkt.addSubPkt(4, 0, 0x0306, 0x0, 2, b"\0"*2)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
2025-07-30 22:59:06 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
|
|
|
|
|
def tc7():
|
|
|
|
|
|
genPkt = GenPkt()
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc07"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 18:28:57 +08:00
|
|
|
|
tc_des = "读写命令,写入0x100开始的32B寄存器,这32B寄存器实际上是只读寄存器。\\n" \
|
2025-08-10 12:32:30 +08:00
|
|
|
|
+ "检查是否真的写入,读取的值,子报文的状态。由于读写的寄存器是同步寄存器组,\\n"\
|
|
|
|
|
|
+ "数据每次可能因为运行时间的差别,存在差异,需要手工检查。"
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包3
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(3, 0, 0x0100, 0x2, 32, b"\0"*129)
|
|
|
|
|
|
genPkt.addSubPkt(4, 0, 0x0100, 0x2, 32, b"\0"*140)
|
|
|
|
|
|
genPkt.addSubPkt(1, 0, 0x0100, 0x2, 32, b"\0"*128)
|
|
|
|
|
|
genPkt.addSubPkt(2, 0, 0x0100, 0x2, 32, b"\0"*152)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(2, 0, 0x0120, 0x2, 2, b"\x05"*32)
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
2025-09-04 06:50:15 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+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)
|
2025-07-30 15:50:16 +08:00
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+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])
|
2025-08-01 11:33:21 +08:00
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+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)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
2025-08-01 11:33:21 +08:00
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
def tc8():
|
2025-08-01 11:33:21 +08:00
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
gen_file_def = "base_tc08"
|
2025-08-01 11:33:21 +08:00
|
|
|
|
sm_idx = 0
|
2025-08-01 17:01:30 +08:00
|
|
|
|
tc_des = "测试RESET,仅复位主站和2号设备;链路和网络被破坏;发送广播包只能到1,2;3,4收不到。\\n" \
|
2025-08-10 10:34:59 +08:00
|
|
|
|
+ "复位后,必须清除中断才能正常工作。通过嗅探包、设置顺序地址命令等重新建立网络。"
|
2025-08-01 17:01:30 +08:00
|
|
|
|
|
2025-08-01 11:33:21 +08:00
|
|
|
|
#>>>>>>设置顺序地址
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
2025-08-01 17:01:30 +08:00
|
|
|
|
main_dev = [0x01, ]
|
|
|
|
|
|
slave_dev = [0x02, ]
|
2025-08-01 11:33:21 +08:00
|
|
|
|
|
2025-08-01 17:01:30 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, False, 4)
|
2025-08-26 17:35:30 +08:00
|
|
|
|
|
2025-08-19 13:23:28 +08:00
|
|
|
|
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
|
|
|
|
|
+genIFRwDataCode(2, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
2025-08-26 17:35:30 +08:00
|
|
|
|
|
2025-08-13 00:30:21 +08:00
|
|
|
|
+"\n#5000\n"
|
|
|
|
|
|
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x09, True, 1, [0, ], False, iface=1)
|
2025-08-26 17:35:30 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
2025-08-01 17:01:30 +08:00
|
|
|
|
+genIFRwDataCode(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x74, False, 4)
|
2025-08-26 17:35:30 +08:00
|
|
|
|
|
2025-09-04 06:50:15 +08:00
|
|
|
|
+genMessageCode("--设置中断为脉冲模式")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x7c, True, 2, [0x00, 0x81])
|
|
|
|
|
|
+genIFRwDataCode(2, 0x7c, True, 2, [0x00, 0x81])
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--使能中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x70, True, 4, [0x03, 0x00, 0x00, 0xf0])
|
|
|
|
|
|
+genIFRwDataCode(2, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
|
|
|
|
|
|
2025-08-26 17:35:30 +08:00
|
|
|
|
+genMessageCode("--读取中断使能")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x70, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x70, False, 4)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--配置主从站")
|
2025-08-01 17:01:30 +08:00
|
|
|
|
+genIFRwDataCode(0, 0x00, True, 1, main_dev)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x00, True, 1, slave_dev)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-01 17:01:30 +08:00
|
|
|
|
)
|
2025-08-01 11:33:21 +08:00
|
|
|
|
|
2025-08-01 17:01:30 +08:00
|
|
|
|
|
|
|
|
|
|
data = [0,] * 128
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xd, 128, data)
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
2025-08-01 17:01:30 +08:00
|
|
|
|
|
2025-07-30 15:50:16 +08:00
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
2025-08-01 17:01:30 +08:00
|
|
|
|
+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-10 10:34:59 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-26 17:35:30 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--配置中断模式")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x7c, True, 2, [0x00, 0x81])
|
|
|
|
|
|
+genIFRwDataCode(2, 0x7c, True, 2, [0x00, 0x81])
|
2025-08-01 17:01:30 +08:00
|
|
|
|
)
|
2025-07-30 22:59:06 +08:00
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
2025-08-01 17:01:30 +08:00
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genIFRwDataCode(1, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0xc0, False, 4)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw01"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
+genIFRwDataCode(1, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0xc0, False, 4)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-01 17:01:30 +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 + "_rw02"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
data = [0x3f, 0xff]
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data)
|
|
|
|
|
|
|
|
|
|
|
|
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-04 06:50:15 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-01 17:01:30 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genIFRwDataCode(1, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0xc0, False, 4)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw03"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
+genIFRwDataCode(1, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0xc0, False, 4)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-08-01 17:01:30 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-30 22:59:06 +08:00
|
|
|
|
return gen_file_def
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc9():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc09"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-10 14:36:36 +08:00
|
|
|
|
tc_des = ("发送超过带有64个子包的读。检查子包的状态、中断、统计等信息。\\n"
|
|
|
|
|
|
"由于读取了0x100同步寄存器组;0x200 eb-mmu寄存器组;0x0300数据缓冲区寄存器组;\\n"
|
|
|
|
|
|
"这些寄存器值和时间相关,不提供对比结果,需要手工检查。"
|
|
|
|
|
|
)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>设置顺序地址
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
data = [0, ] * 32
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x5, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x5, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x5, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x5, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x6, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x6, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x6, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x6, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0000, 0x0, 4, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0100, 0x0, 8, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0200, 0x0, 16, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0300, 0x0, 4, data)
|
|
|
|
|
|
|
|
|
|
|
|
data = [0, ] * 128
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x0180, 0x0, 128, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x0180, 0x0, 128, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x0180, 0x0, 128, data)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x0180, 0x0, 128, data)
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
custom_data1 = list(range(1, 129))
|
|
|
|
|
|
custom_data2 = list(range(1*2, 129*2, 2))
|
|
|
|
|
|
custom_data3 = list(range(1*3, 129*3, 3))
|
|
|
|
|
|
custom_data4 = list(range(1*4, 129*4, 4))
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x180, True, 128, custom_data1)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x180, True, 128, custom_data2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x180, True, 128, custom_data3)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x180, True, 128, custom_data4)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
def tc10():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc10"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-10 14:36:36 +08:00
|
|
|
|
tc_des = ("发送超过带有64个子包的写。检查子包的状态、中断、统计等信息。\\n"
|
|
|
|
|
|
"由于访问了统计寄存器,需要手动确认这些寄存器。"
|
|
|
|
|
|
)
|
2025-08-04 18:28:57 +08:00
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>设置顺序地址
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
for i in range(1, 5):
|
|
|
|
|
|
data = [0, ] * 32
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0302, 1, 2, [0x40, 0x00])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0800, 1, 4, [i + 1, 2, 3, 4])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0804, 1, 4, [5, 6, 7, 8])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0808, 1, 4, [9, 10, 11, 12])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x080c, 1, 4, [13, 14, 15, 16])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0810, 1, 4, [17, 18, 19, 20])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0814, 1, 4, [21, 22, 23, 24])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0818, 1, 4, [25, 26, 27, 28])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x081c, 1, 4, [29, 30, 31, 32])
|
2025-08-04 19:19:08 +08:00
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0820, 1, 4, [1, 2, 3, 4])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0824, 1, 4, [5, 6, 7, 8])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0828, 1, 4, [9, 10, 11, 12])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x082c, 1, 4, [13, 14, 15, 16])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0830, 1, 4, [17, 18, 19, 20])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0834, 1, 4, [21, 22, 23, 24])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x0838, 1, 4, [25, 26, 27, 28])
|
|
|
|
|
|
genPkt.addSubPkt(i, 0, 0x083c, 1, 4, [29, 30, 31, 32])
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-04 18:28:57 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genSlvSMReadData(1, 0, 0x40)
|
|
|
|
|
|
+genSlvSMReadData(2, 0, 0x40)
|
|
|
|
|
|
+genSlvSMReadData(3, 0, 0x40)
|
|
|
|
|
|
+genSlvSMReadData(4, 0, 0x40)
|
|
|
|
|
|
|
2025-08-12 11:45:38 +08:00
|
|
|
|
+genIFRwDataCode(0, 0x80, False, 24)
|
|
|
|
|
|
+genIFRwDataCode(0, 0xa0, False, 24)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x80, False, 24)
|
2025-08-12 17:26:20 +08:00
|
|
|
|
+genIFRwDataCode(1, 0xa0, False, 24)
|
2025-08-12 11:45:38 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x80, False, 24)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x80, False, 24)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x80, False, 24)
|
2025-08-04 19:19:08 +08:00
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
def tc11():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc11"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-05 11:27:13 +08:00
|
|
|
|
tc_des = "清除统计信息,从SPI侧清0,清0是失败的。因为统计寄存器对于SPI侧来说是只读寄存器。\\n"
|
2025-08-04 19:19:08 +08:00
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>设置顺序地址
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
2025-08-05 11:27:13 +08:00
|
|
|
|
op_size = 24
|
2025-08-04 19:19:08 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-08-05 11:27:13 +08:00
|
|
|
|
data = [0, ] * op_size
|
2025-08-04 19:19:08 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-08-05 11:27:13 +08:00
|
|
|
|
+genIFRwDataCode(0, 0x80, True, op_size, data)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x80, True, op_size, data)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x80, True, op_size, data)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x80, True, op_size, data)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x80, True, op_size, data)
|
2025-08-04 19:19:08 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-08-05 11:27:13 +08:00
|
|
|
|
genPkt.addAfterExc( genIFRwDataCode(0, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x80, False, op_size)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc12():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc12"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = "清除统计信息,从LVDS侧清0,清0是成功的。\\n"
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>设置顺序地址
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
op_size = 24
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data = [0, ] * op_size
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-05 11:27:13 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x80, 0xe, op_size, data)
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
2025-08-04 19:19:08 +08:00
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-08-05 11:27:13 +08:00
|
|
|
|
+genIFRwDataCode(0, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x80, False, op_size)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x80, False, op_size)
|
2025-08-04 19:19:08 +08:00
|
|
|
|
|
2025-08-04 18:28:57 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
2025-08-05 15:18:42 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc13():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc13"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-05 17:05:48 +08:00
|
|
|
|
tc_des = "测试事件寄存器组。先要同步一下时间,然后测试Latch0、Latch1的锁定。\\n"\
|
|
|
|
|
|
+ "间隔5000ns,以仿真周期算,大概是31~32个clock。需要检查波形文件。\\n"\
|
|
|
|
|
|
+ "latch0、latch1每个设备设置不一样,交替设置,相互印证。"
|
2025-08-05 15:18:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-05 15:18:42 +08:00
|
|
|
|
+genEnableInsertTimeCode(0xa))
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
2025-09-04 06:50:15 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-05 15:18:42 +08:00
|
|
|
|
+genCheckInsertTimeCode()
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>设置顺序地址
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw01"
|
|
|
|
|
|
genPkt.addBeforeExc(genMessageCode("--读取事件寄存器组")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x500, False, 0x48)
|
2025-08-05 15:31:09 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x500, False, 0x48)
|
2025-08-05 15:18:42 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--设置事件")
|
2025-08-05 16:09:31 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] )
|
|
|
|
|
|
+genIFRwDataCode(2, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] )
|
|
|
|
|
|
+genIFRwDataCode(3, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] )
|
|
|
|
|
|
+genIFRwDataCode(4, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] )
|
2025-08-05 15:18:42 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取事件寄存器组")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x500, False, 0x48)
|
2025-08-05 15:31:09 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x500, False, 0x48)
|
2025-08-05 15:18:42 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-08-05 16:09:31 +08:00
|
|
|
|
genPkt.addAfterExc( "latch0 <= 1;\n"
|
|
|
|
|
|
+"latch1 <= 1;\n"
|
|
|
|
|
|
|
2025-08-05 15:18:42 +08:00
|
|
|
|
+"#5000\n"
|
|
|
|
|
|
+"latch0 <= 0;\n"
|
2025-08-05 16:09:31 +08:00
|
|
|
|
+"latch1 <= 0;\n"
|
|
|
|
|
|
|
2025-08-05 15:18:42 +08:00
|
|
|
|
+"#5000\n"
|
|
|
|
|
|
+"latch0 <= 1;\n"
|
2025-08-05 16:09:31 +08:00
|
|
|
|
+"latch1 <= 1;\n"
|
|
|
|
|
|
|
2025-08-05 15:18:42 +08:00
|
|
|
|
+"#5000\n"
|
|
|
|
|
|
+"latch0 <= 0;\n"
|
2025-08-05 16:09:31 +08:00
|
|
|
|
+"latch1 <= 0;\n"
|
|
|
|
|
|
|
2025-08-05 15:18:42 +08:00
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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, 0x500, False, 0x48)
|
2025-08-05 15:31:09 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x500, False, 0x48)
|
2025-08-05 15:18:42 +08:00
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
2025-08-05 17:05:48 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc14():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc14"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = "测试事件寄存器组。先同步,事件寄存器组会抓取写入SMx、读出SMx的时间;SPI侧读入、写入的时间。\\n"\
|
|
|
|
|
|
+ "需要检查波形文件。"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 16:22:02 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-05 17:05:48 +08:00
|
|
|
|
+genEnableInsertTimeCode(0xa))
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
+genCheckInsertTimeCode()
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>设置顺序地址
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
m2s_size = 8
|
|
|
|
|
|
s2m_size = 16
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw01"
|
|
|
|
|
|
genPkt.addBeforeExc(genMessageCode("--读取事件寄存器组")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x500, False, 0x48)
|
2025-09-04 16:22:02 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-05 17:05:48 +08:00
|
|
|
|
|
|
|
|
|
|
+genSlvSMWriteData(1, 1, s2m_size, list(range(s2m_size)))
|
|
|
|
|
|
+genSlvSMWriteData(2, 1, s2m_size, list(range(s2m_size)))
|
|
|
|
|
|
+genSlvSMWriteData(3, 1, s2m_size, list(range(s2m_size)))
|
|
|
|
|
|
+genSlvSMWriteData(4, 1, s2m_size, list(range(s2m_size)))
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-13 00:30:21 +08:00
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0302, 0xe, 2, [m2s_size, 0])
|
2025-08-05 17:05:48 +08:00
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800, 0xe, m2s_size, list(range(m2s_size)))
|
|
|
|
|
|
genPkt.addSubPkt(1, 0, 0x1000, 0x0, s2m_size, [0, ] * s2m_size)
|
|
|
|
|
|
genPkt.addSubPkt(2, 0, 0x1000, 0x0, s2m_size, [0, ] * s2m_size)
|
|
|
|
|
|
genPkt.addSubPkt(3, 0, 0x1000, 0x0, s2m_size, [0, ] * s2m_size)
|
|
|
|
|
|
genPkt.addSubPkt(4, 0, 0x1000, 0x0, s2m_size, [0, ] * s2m_size)
|
|
|
|
|
|
|
|
|
|
|
|
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(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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genSlvSMReadData(1, 0, m2s_size)
|
|
|
|
|
|
+genSlvSMReadData(2, 0, m2s_size)
|
|
|
|
|
|
+genSlvSMReadData(3, 0, m2s_size)
|
|
|
|
|
|
+genSlvSMReadData(4, 0, m2s_size)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取事件寄存器组")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x500, False, 0x48)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x500, False, 0x48)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
2025-08-06 16:06:08 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-06 16:52:11 +08:00
|
|
|
|
def tc_wr_sm(tc_id, wr_sm_idx):
|
2025-08-06 16:06:08 +08:00
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
2025-08-06 16:52:11 +08:00
|
|
|
|
gen_file_def = f"base_tc{tc_id}_wr_sm{wr_sm_idx}"
|
2025-08-06 16:06:08 +08:00
|
|
|
|
sm_idx = 0
|
2025-08-10 16:42:56 +08:00
|
|
|
|
tc_des = (f"读写SM{wr_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n"
|
|
|
|
|
|
"检查是否真的写入,子报文的状态。目前即使SM0、2、4、6满了,处于溢出状态,硬件难以判断是否能提交数据。\\n"
|
|
|
|
|
|
"目前只要地址、长度正确,即使无法写入,工作计数也会加1。工作计数不能反应报文与SMx的互动关系。\\n"
|
|
|
|
|
|
"需要手动检查相应数据。"
|
|
|
|
|
|
)
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包3
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
2025-08-06 16:52:11 +08:00
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0302 + wr_sm_idx * 0x4, 0xe, 2, [32, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(0, 32)))
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(32, 64)))
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(64, 96)))
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(96, 128)))
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(128, 160)))
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(160, 192)))
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(192, 224)))
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(224, 256)))
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
2025-09-04 16:22:02 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--第一次读")
|
|
|
|
|
|
+genIFRwDataCode(1, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x300 + wr_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMReadData(1, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(2, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(3, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(4, wr_sm_idx, 32)
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--第二次读")
|
|
|
|
|
|
+genIFRwDataCode(1, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x300 + wr_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMReadData(1, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(2, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(3, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(4, wr_sm_idx, 32)
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--第三次读")
|
|
|
|
|
|
+genIFRwDataCode(1, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x300 + wr_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMReadData(1, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(2, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(3, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(4, wr_sm_idx, 32)
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--第四次读")
|
|
|
|
|
|
+genIFRwDataCode(1, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x300 + wr_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMReadData(1, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(2, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(3, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(4, wr_sm_idx, 32)
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--第五次读")
|
|
|
|
|
|
+genIFRwDataCode(1, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x300 + wr_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMReadData(1, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(2, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(3, wr_sm_idx, 32)
|
|
|
|
|
|
+genSlvSMReadData(4, wr_sm_idx, 32)
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x300 + wr_sm_idx * 0x4, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x300 + wr_sm_idx * 0x4, False, 2)
|
2025-08-06 16:06:08 +08:00
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
2025-08-06 16:52:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc_rd_sm(tc_id, rd_sm_idx):
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = f"base_tc{tc_id}_rd_sm{rd_sm_idx}"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-10 16:42:56 +08:00
|
|
|
|
tc_des = (f"读写SM{rd_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n"
|
|
|
|
|
|
"检查是否真的写入,子报文的状态。目前即使SM1、3、5、7空了,没有数据,硬件难以判断是否存在数据。\\n"
|
|
|
|
|
|
"目前只要地址、长度正确,即使无法读取,工作计数也会加1。工作计数不能反应报文与SMx的互动关系。\\n"
|
|
|
|
|
|
"需要手工检查生成数据。"
|
|
|
|
|
|
)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包3
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
#genPkt.addSubPkt(0, 0, 0x0302, 0xd, 2, [32, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 16:22:02 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--设备1的写")
|
|
|
|
|
|
+genIFRwDataCode(1, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(0, 32)))
|
|
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(32, 64)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(64, 96)))
|
|
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(96, 128)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(128, 160)))
|
|
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(160, 192)))
|
|
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(192, 224)))
|
|
|
|
|
|
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(224, 256)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--设备2的写")
|
|
|
|
|
|
+genIFRwDataCode(2, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(0, 32)))
|
|
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(32, 64)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(64, 96)))
|
|
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(96, 128)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(128, 160)))
|
|
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(160, 192)))
|
|
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(192, 224)))
|
|
|
|
|
|
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(224, 256)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--设备3的写")
|
|
|
|
|
|
+genIFRwDataCode(3, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(0, 32)))
|
|
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(32, 64)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(3, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(64, 96)))
|
|
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(96, 128)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(3, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(128, 160)))
|
|
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(160, 192)))
|
|
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(192, 224)))
|
|
|
|
|
|
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(224, 256)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(3, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genMessageCode("--设备4的写")
|
|
|
|
|
|
+genIFRwDataCode(4, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(0, 32)))
|
|
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(32, 64)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(4, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(64, 96)))
|
|
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(96, 128)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(4, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(128, 160)))
|
|
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(160, 192)))
|
|
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(192, 224)))
|
|
|
|
|
|
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(224, 256)))
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(4, 0x300 + rd_sm_idx * 0x4, False, 2)
|
2025-08-06 16:52:11 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc15():
|
|
|
|
|
|
return tc_wr_sm(15, 0)
|
|
|
|
|
|
|
|
|
|
|
|
def tc16():
|
|
|
|
|
|
return tc_rd_sm(16, 1)
|
|
|
|
|
|
|
|
|
|
|
|
def tc17():
|
|
|
|
|
|
return tc_wr_sm(17, 2)
|
|
|
|
|
|
|
|
|
|
|
|
def tc18():
|
|
|
|
|
|
return tc_rd_sm(18, 3)
|
|
|
|
|
|
|
|
|
|
|
|
def tc19():
|
|
|
|
|
|
return tc_wr_sm(19, 4)
|
|
|
|
|
|
|
|
|
|
|
|
def tc20():
|
|
|
|
|
|
return tc_rd_sm(20, 5)
|
|
|
|
|
|
|
|
|
|
|
|
def tc21():
|
|
|
|
|
|
return tc_wr_sm(21, 6)
|
|
|
|
|
|
|
|
|
|
|
|
def tc22():
|
|
|
|
|
|
return tc_rd_sm(22, 7)
|
|
|
|
|
|
|
2025-08-06 17:46:08 +08:00
|
|
|
|
def tc23():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc23"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = "使用广播读写命令,读取SM0的长度寄存器;测试工作计数。\\n"
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包2
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 16:22:02 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-06 17:46:08 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x0302, 0xf, 2, [32, 0])
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
2025-08-19 13:23:28 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
def tc24():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc24"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = ("同步后,SYNC信号采用脉冲触发,4个设备,4个周期;先用广播包发送公共周期;然后3,4,\\n"
|
|
|
|
|
|
"2设备单独指定周期。该同步数据之前没有补广播包。如果紧跟嗅探包而不是普通包之后,可能会影响同步。\\n"
|
|
|
|
|
|
"期望是无论前面发送得是什么包,都不会影响同步的效果。一段时间后,重新同步,期望不要打断sync\\n"
|
|
|
|
|
|
"信号的输出。需要在波形文件里查看具体的效果。"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 16:22:02 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-09-03 00:23:32 +08:00
|
|
|
|
#+genIFRwDataCode(2, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
|
|
|
|
|
#+genIFRwDataCode(3, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
|
|
|
|
|
#+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
2025-08-19 13:23:28 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
data = [0x3f, 0xff]
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rwFF"
|
|
|
|
|
|
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(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x74, False, 4)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x74, False, 4)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>设置同步信号的数据包
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
|
|
|
|
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
|
|
|
|
|
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
|
|
|
|
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xd, 200, [0, ] * 200)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
data = [0,] * 100 #bytearray(b"\0" * 100)
|
|
|
|
|
|
data[0] = 0x0f #地址0x120
|
|
|
|
|
|
data[2] = 0xa
|
|
|
|
|
|
data[4] = 0xa
|
|
|
|
|
|
data[6] = 0xa
|
|
|
|
|
|
data[8] = 0xa
|
|
|
|
|
|
|
|
|
|
|
|
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
|
|
|
|
|
|
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
|
|
|
|
|
|
data[18] = '''(_temp_time >> 16) & 8'hff'''
|
|
|
|
|
|
data[19] = '''(_temp_time >> 24) & 8'hff'''
|
|
|
|
|
|
|
|
|
|
|
|
data[24] = 0x80 #地址0x138, sync周期 4B
|
|
|
|
|
|
data[25] = 0x00 #地址0x139
|
|
|
|
|
|
|
|
|
|
|
|
data[28] = 0x0 #sync1偏移
|
|
|
|
|
|
data[29] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
data[36] = 0x0#sync3偏移
|
|
|
|
|
|
data[37] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0, 0, 0x120, 0xe, 0x28, data)
|
|
|
|
|
|
|
|
|
|
|
|
data = [0,] * 100 #bytearray(b"\0" * 100)
|
|
|
|
|
|
data[0] = 0x0f #地址0x120
|
|
|
|
|
|
data[2] = 0xa
|
|
|
|
|
|
data[4] = 0xa
|
|
|
|
|
|
data[6] = 0xa
|
|
|
|
|
|
data[8] = 0xa
|
|
|
|
|
|
|
|
|
|
|
|
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
|
|
|
|
|
|
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
|
|
|
|
|
|
data[18] = '''(_temp_time >> 16) & 8'hff'''
|
|
|
|
|
|
data[19] = '''(_temp_time >> 24) & 8'hff'''
|
|
|
|
|
|
|
|
|
|
|
|
data[24] = 0x00 #地址0x138, sync周期 4B
|
|
|
|
|
|
data[25] = 0x01 #地址0x139
|
|
|
|
|
|
|
|
|
|
|
|
data[28] = 0x0 #sync1偏移
|
|
|
|
|
|
data[29] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
data[36] = 0x0 #sync3偏移
|
|
|
|
|
|
data[37] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(3, 0, 0x120, 0x1, 0x28, data)
|
|
|
|
|
|
|
|
|
|
|
|
data = [0,] * 100 #bytearray(b"\0" * 100)
|
|
|
|
|
|
data[0] = 0x0f #地址0x120
|
|
|
|
|
|
data[2] = 0xa
|
|
|
|
|
|
data[4] = 0xa
|
|
|
|
|
|
data[6] = 0xa
|
|
|
|
|
|
data[8] = 0xa
|
|
|
|
|
|
|
|
|
|
|
|
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
|
|
|
|
|
|
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
|
|
|
|
|
|
data[18] = '''(_temp_time >> 16) & 8'hff'''
|
|
|
|
|
|
data[19] = '''(_temp_time >> 24) & 8'hff'''
|
|
|
|
|
|
|
|
|
|
|
|
data[24] = 0x00 #地址0x138, sync周期 4B
|
|
|
|
|
|
data[25] = 0x02 #地址0x139
|
|
|
|
|
|
|
|
|
|
|
|
data[28] = 0x0 #sync1偏移
|
|
|
|
|
|
data[29] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
data[36] = 0x0 #sync3偏移
|
|
|
|
|
|
data[37] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(4, 0, 0x120, 0x1, 0x28, data)
|
|
|
|
|
|
|
|
|
|
|
|
data = [0,] * 100 #bytearray(b"\0" * 100)
|
|
|
|
|
|
data[0] = 0x0f #地址0x120
|
|
|
|
|
|
data[2] = 0xa
|
|
|
|
|
|
data[4] = 0xa
|
|
|
|
|
|
data[6] = 0xa
|
|
|
|
|
|
data[8] = 0xa
|
|
|
|
|
|
|
|
|
|
|
|
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
|
|
|
|
|
|
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
|
|
|
|
|
|
data[18] = '''(_temp_time >> 16) & 8'hff'''
|
|
|
|
|
|
data[19] = '''(_temp_time >> 24) & 8'hff'''
|
|
|
|
|
|
|
|
|
|
|
|
data[24] = 0x00 #地址0x138, sync周期 4B
|
|
|
|
|
|
data[25] = 0x04 #地址0x139genPkt.addBeforeExc(
|
|
|
|
|
|
|
|
|
|
|
|
data[28] = 0x0 #sync1偏移
|
|
|
|
|
|
data[29] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
data[36] = 0x0 #sync3偏移
|
|
|
|
|
|
data[37] = 0x0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(2, 0, 0x120, 0x1, 0x28, data)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw00"
|
|
|
|
|
|
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(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x74, False, 4)
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x74, False, 4)
|
2025-08-19 13:23:28 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+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])
|
2025-08-19 13:23:28 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x74, False, 4)
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x74, False, 4)
|
2025-08-19 13:23:28 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
#>>>>>>同步数据包
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, [0, ] * 12)
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xd, 10, [0, ] * 10)
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xd, 10, [0, ] * 10)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa))# + 18 + 18))
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw02"
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
+genCheckInsertTimeCode()
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x74, False, 4)
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x74, False, 4)
|
2025-08-19 13:23:28 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+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])
|
2025-08-19 13:23:28 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x74, False, 4)
|
2025-09-03 00:23:32 +08:00
|
|
|
|
+genIFRwDataCode(2, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x74, False, 4)
|
2025-08-19 13:23:28 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def)) #+genDisableInsertTimeCode())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
2025-08-25 00:32:52 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc25():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc25"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = "发送一个包,内涵多个子包,包括所有的命令。\\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm1,2个读
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x00, 0, 0x00, 0xc, 12, [0, ] * 12)
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x00, 0x0, 32, [0, ] * 32)
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x302, 0x1, 2, [0x10, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x800, 0x1, 0x10, list(range(0x10)))
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x302, 0x2, 2, [0x20, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x00, 0xb, 2, [0x00, 0x00])
|
|
|
|
|
|
genPkt.addSubPkt(0x00, 0, 0x70, 0xd, 4, [0, 0, 0, 0])
|
|
|
|
|
|
genPkt.addSubPkt(0x00, 0, 0x30a, 0xe, 2, [0x20, 0x00])
|
|
|
|
|
|
genPkt.addSubPkt(0x00, 0, 0xc0, 0xf, 2, [0x00, 0x00])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 1
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 16:22:02 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-25 00:32:52 +08:00
|
|
|
|
+genEnableInsertTimeCode(0xa))
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(2, 0x800, False, 0x10)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
2025-08-26 17:35:30 +08:00
|
|
|
|
|
|
|
|
|
|
def tc26():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc26"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = "读取内部的时钟,看看是否有进位问题,导致读取的错误或不可靠。\\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm1,2个读
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x00, 0, 0x00, 0xc, 12, [0, ] * 12)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 1
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
2025-09-04 16:22:02 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-26 17:35:30 +08:00
|
|
|
|
+genEnableInsertTimeCode(0xa))
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(2, 0x800, False, 0x10)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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("--读取时间1")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x100, False, 32)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+"#8000\n"
|
|
|
|
|
|
+genMessageCode("--读取时间2")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x100, False, 32)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x100, False, 32)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取时间3")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x100, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(0, 0x118, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x118, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x118, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x118, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x118, False, 8)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
2025-08-28 09:59:15 +08:00
|
|
|
|
def tc27():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc27"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = "测试主站并行输出。在SM0工作的情况下,操作SM1,SM2,SM3,然后看是否正常。\\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm1,2个读
|
2025-08-29 17:20:40 +08:00
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
2025-08-28 09:59:15 +08:00
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x302, 0x1, 2, [0x00, 0x03])
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x302, 0x1, 2, [0x00, 0x01])
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x302, 0x1, 2, [0x00, 0x01])
|
|
|
|
|
|
genPkt.addSubPkt(0x04, 0, 0x302, 0x1, 2, [0x00, 0x01])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 0
|
2025-09-03 19:08:29 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
)
|
2025-08-29 17:20:40 +08:00
|
|
|
|
|
|
|
|
|
|
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)
|
2025-09-03 19:08:29 +08:00
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-08-28 09:59:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x800, 0x1, 768,
|
|
|
|
|
|
list(range(256)) + list(range(255, -1, -1)) + list(range(256)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap01 = gen_file_def + "_rw01"
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap01, 1)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap01, 1)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap01, 1)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap01)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x800, 0x1, 256, list(range(128)) + list(range(128)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap02 = gen_file_def + "_rw02"
|
|
|
|
|
|
sm_idx = 2
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap02, 2)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap02, 2)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap02)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x800, 0x1, 256, list(range(64)) + list(range(64)) + list(range(64)) + list(range(64)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap03 = gen_file_def + "_rw03"
|
|
|
|
|
|
sm_idx = 3
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap03, 3)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap03, 3)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap01, 1)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap02, 2)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap02, 2)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap03, 3)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap03, 3)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(1, 0x800, False, 768)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x800, False, 256)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x800, False, 256)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap03)
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-30 14:32:05 +08:00
|
|
|
|
return gen_file_def
|
|
|
|
|
|
|
|
|
|
|
|
def tc28():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc28"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = ("测试IO交换特性,为环网通信做准备。\\n"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
|
|
|
|
|
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
|
|
|
|
|
+"#5000"
|
|
|
|
|
|
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x74, False, 4)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断使能")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x70, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x70, False, 4)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--配置主从站")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x00, True, 1, [0x02, ])
|
|
|
|
|
|
+genIFRwDataCode(4, 0x00, True, 1, [0x01, ])
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genIFRwDataCode(0, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x4a, False, 2)
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(0, 0x4a, True, 2, [1, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(1, 0x4a, True, 2, [1, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(2, 0x4a, True, 2, [1, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(3, 0x4a, True, 2, [1, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(4, 0x4a, True, 2, [1, 0x58])
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(0, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(1, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(2, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(3, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(4, 0, False, 1)
|
|
|
|
|
|
#genWriteTransLenCode(gen_file_def, sm_idx)
|
|
|
|
|
|
#+genWriteTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
#+genTrgTransPktCode(gen_file_def, sm_idx)
|
|
|
|
|
|
#+genReadAckPktCode(gen_file_def, sm_idx)
|
2025-08-29 17:20:40 +08:00
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-08-30 14:32:05 +08:00
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw01"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data = [0x3f, 0xff]
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw02"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
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 + "_rw03"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x1, 0, 0x180, 0, 32, [0, ]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0x2, 0, 0x180, 0, 32, [0, ]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0x3, 0, 0x180, 0, 32, [0, ]*32)
|
|
|
|
|
|
genPkt.addSubPkt(0x4, 0, 0x180, 0, 32, [0, ]*32)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw04"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
|
|
|
|
|
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
|
|
|
|
|
+"#5000"
|
|
|
|
|
|
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x74, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x74, False, 4)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取中断使能")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x70, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x70, False, 4)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--配置主从站")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x00, True, 1, [0x01, ])
|
|
|
|
|
|
+genIFRwDataCode(4, 0x00, True, 1, [0x02, ])
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(0, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x4a, False, 2)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x4a, False, 2)
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(0, 0x4a, True, 2, [0, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(1, 0x4a, True, 2, [0, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(2, 0x4a, True, 2, [0, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(3, 0x4a, True, 2, [0, 0x58])
|
|
|
|
|
|
+genIFRwDataCode(4, 0x4a, True, 2, [0, 0x58])
|
|
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(0, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(1, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(2, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(3, 0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(4, 0, False, 1)
|
|
|
|
|
|
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
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 + "_rw05"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data = [0x3f, 0xff]
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data)
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def_ap = gen_file_def + "_rw06"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
+genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
+genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
+genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=0)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
2025-08-28 09:59:15 +08:00
|
|
|
|
return gen_file_def
|
2025-08-30 14:55:25 +08:00
|
|
|
|
|
|
|
|
|
|
def tc29():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc29"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = ("读,单次通讯2048个字节。每个子包包含数据128个字节,最多15个子包。 \\n"
|
|
|
|
|
|
+"(128 + 8) * 15 + 4(HEAD) + 4(CRC) = 2048\\n"
|
2025-09-02 00:31:40 +08:00
|
|
|
|
+"可以通过屏蔽子包的方式,增大或者缩小发送的数据量。最大的数据量不超过2048个字节。"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm2,广播读
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
2025-08-30 14:55:25 +08:00
|
|
|
|
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x04, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x04, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x04, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
|
2025-09-06 16:39:20 +08:00
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x180, 0x0, 128, None)
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x180, 0x0, 128, None)
|
2025-08-30 14:55:25 +08:00
|
|
|
|
|
|
|
|
|
|
sm_idx = 2
|
|
|
|
|
|
|
2025-09-04 16:22:02 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
2025-09-07 07:37:34 +08:00
|
|
|
|
|
|
|
|
|
|
+genIFRwDataCode(1, 0x180, True, 128, list(range(128)))
|
|
|
|
|
|
+genIFRwDataCode(2, 0x180, True, 128, list(range(4, 128 + 4)))
|
|
|
|
|
|
+genIFRwDataCode(3, 0x180, True, 128, list(range(8, 128 + 8)))
|
|
|
|
|
|
+genIFRwDataCode(4, 0x180, True, 128, list(range(16, 128 + 16)))
|
2025-09-04 16:22:02 +08:00
|
|
|
|
)
|
2025-09-02 00:31:40 +08:00
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
|
|
|
|
|
|
2025-08-30 14:55:25 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|
2025-09-06 16:39:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tc30():
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gen_file_def = "base_tc30"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
tc_des = ("写,单次通讯2048个字节。每个子包包含数据502个字节,最多4个子包。 \\n"
|
|
|
|
|
|
+"(502 + 8) * 4 + 4(HEAD) + 4(CRC) = 2048\\n"
|
|
|
|
|
|
+"可以通过屏蔽子包的方式,增大或者缩小发送的数据量。最大的数据量不超过2048个字节。"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
#>>>>>>普通数据包 sm2,广播读
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(0)
|
|
|
|
|
|
data_len = 502
|
|
|
|
|
|
data_len_wr = [(data_len & 0xff), ((data_len >> 8) & 0xff)]
|
|
|
|
|
|
#genPkt.addSubPkt(0x00, 0, 0x302, 0xe, 2, data_len_wr) #500
|
|
|
|
|
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
|
|
|
|
|
genPkt.addSubPkt(0x01, 0, 0x800, 0x1, data_len, list(range(256)) + list(range(256)))
|
|
|
|
|
|
genPkt.addSubPkt(0x02, 0, 0x800, 0x1, data_len, list(range(256)) + list(range(256)))
|
|
|
|
|
|
genPkt.addSubPkt(0x03, 0, 0x800, 0x1, data_len, list(range(256)) + list(range(256)))
|
|
|
|
|
|
genPkt.addSubPkt(0x04, 0, 0x800, 0x1, data_len, list(range(256)) + list(range(256)))
|
|
|
|
|
|
|
|
|
|
|
|
sm_idx = 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
|
|
|
|
|
+genIFRwDataCode(1, 0x0302, True, 2, data_len_wr)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x0302, True, 2, data_len_wr)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x0302, True, 2, data_len_wr)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x0302, True, 2, data_len_wr)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
+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])
|
|
|
|
|
|
|
|
|
|
|
|
+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(1, 0x800, False, data_len)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x800, False, data_len)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x800, False, data_len)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x800, False, data_len)
|
|
|
|
|
|
|
|
|
|
|
|
+genTcEndFrameCode(gen_file_def))
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
|
|
|
|
|
|
|
|
|
|
|
return gen_file_def
|