增加代码,测试SM的收发与数据交换

This commit is contained in:
2025-05-21 10:48:04 +08:00
parent 7db55e8a11
commit 930f63e1f6
2 changed files with 106 additions and 50 deletions

View File

@@ -108,10 +108,14 @@ class GenPkt(object):
if __name__ == '__main__':
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>嗅探数据包
genPkt.setPktType(1)
genPkt.gen("./generated/shin/detect_pkt.vh")
#-------------------------------------------------------------------------
#>>>>>>普通数据包
genPkt.clean()
genPkt.setPktType(0)
@@ -120,21 +124,50 @@ if __name__ == '__main__':
genPkt.addSubPkt(0x01, 0, 0x0840, 0x1, 56, None)
genPkt.addSubPkt(0x03, 0, 0x1040, 0x0, 56, None)
for i in range(5):
genPkt.addSubPkt(random.randint(100, 4000), 0, random.randint(0, 65536), 0x0, 56, None)
genPkt.addSubPkt(random.randint(100, 4000), 0,
random.randint(0, 65536), 0x0,
56, None)
#genPkt.addSubPkt(10, 2, 0x300, 0x2, 4, None)
#genPkt.addSubPkt(11, 1, 0x300, 0x2, 4, None)
genPkt.gen("./generated/shin/seq_pkt.vh")
genPkt.gen("./generated/shin/seq_0_pkt.vh")
#-------------------------------------------------------------------------
#>>>>>>普通数据包0,用来操作sync
genPkt.clean()
genPkt.setPktType(0)
data = bytearray(b"\0"*100)
data[0] = 0 #0x0300
data[1] = 0 #0x0301
data[2] = 64 #0x302 长度1
data[3] = 0 #0x303 长度2
#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
for i in range(64):
data[i] = i
genPkt.addSubPkt(0x02, 0, 0x0800, 0x1, 64, data)
genPkt.addSubPkt(0x01, 0, 0x1800, 0x1, 64, data)
genPkt.addSubPkt(0x03, 0, 0x2800, 0x1, 64, data)
genPkt.addSubPkt(0x04, 0, 0x3800, 0x1, 64, data)
genPkt.gen("./generated/shin/seq_1_pkt.vh")
#-------------------------------------------------------------------------
#>>>>>>同步数据包
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(0x0, 0, random.randint(0, 65536), 0xe, 12, b'\0'*12)
genPkt.gen("./generated/shin/sync_pkt.vh")
#-------------------------------------------------------------------------
#>>>>>>设置同步信号的数据包
genPkt.clean()
genPkt.setPktType(0)
@@ -144,6 +177,7 @@ if __name__ == '__main__':
data[16] = 0x90 #地址0x130, sync同步点
data[17] = 0x88 #地址0x131
#data[18] = 0x10
data[24] = 0xff #地址0x138, sync周期 4B
data[25] = 0x0f #地址0x139