我正在尝试为 J1939 CAN ID 创建一个数据包类。因为我想把 PGN 分成更多的领域;我想把它做成一个包。
这是 CAN ID 格式和布局。
CAN ID (29 bits)
|--- Priority (3 Bits)
|--- PGN (18 bits)
| |--- Reserved (1 bit)
| |--- Data Page (1 bit)
| |--- PF (8 bits)
| |--- PS (8 bits)
|--- Source Address (8 bits)
这是我拥有的代码和一条注释,用于填写 PGN 数据包/对象的去向。
class PGN(Packet):
name = "Parameter Group Number"
fields_desc = [
BitField("R",0,1),
BitField("DP",0,1),
BitField("PF",0,8),
BitField("PS",0,8)
]
class CANID(Packet):
fields_desc = [
BitField("Priority",0,3),
# PGN packet or PGN like field
BitField("SA",0,8)
]