src.protocol package
Submodules
src.protocol.frame module
DLT645 协议帧结构模块。
本模块定义了 DLT645 协议帧的数据结构和相关常量。
- src.protocol.frame.FRAME_START_BYTE = 104
帧起始字节
- src.protocol.frame.FRAME_END_BYTE = 22
帧结束字节
- src.protocol.frame.BROADCAST_ADDR = 170
广播地址
- class src.protocol.frame.Frame(preamble=bytearray(b''), start_flag=0, addr=bytearray(b''), ctrl_code=0, data_len=0, data=bytearray(b''), check_sum=0, end_flag=0)[源代码]
基类:
objectDLT645 协议帧结构类。
表示一个完整的 DLT645 协议数据帧。
帧格式:
前导码(FE) | 起始符(68H) | 地址域(6B) | 起始符(68H) | 控制码(1B) | 数据长度(1B) | 数据域(NB) | 校验和(1B) | 结束符(16H)
- 变量:
preamble -- 前导字节(通常为 0xFE 0xFE 0xFE 0xFE)。
start_flag -- 起始标志(0x68)。
addr -- 地址域(6字节)。
ctrl_code -- 控制码。
data_len -- 数据域长度。
data -- 数据域内容(已解码)。
check_sum -- 校验和。
end_flag -- 结束标志(0x16)。
初始化 Frame 实例。
- 参数:
src.protocol.log module
src.protocol.protocol module
DLT645 协议实现模块。
本模块实现了 DLT645 协议的核心功能,包括: - 数据域编码/解码(±0x33H 转换) - 校验和计算 - 帧构建和解析
- class src.protocol.protocol.DLT645Protocol[源代码]
基类:
objectDLT645 协议实现类。
该类实现了 DLT645 协议的核心功能,包括数据编码/解码、校验和计算、 帧构建和解析等操作。所有方法均为类方法,可直接调用。
- classmethod decode_data(data)[源代码]
数据域解码(-0x33H 转换)。
按照 DLT645 协议规定,对数据域进行解码处理, 每个字节减去 0x33H,并使用模 256 运算确保结果在 0-255 范围内。
- classmethod calculate_checksum(data)[源代码]
校验和计算(模 256 求和)。
按照 DLT645 协议规定,计算数据的校验和, 对所有字节进行累加,然后对结果取模 256。
- classmethod encode_data(data)[源代码]
数据域编码(+0x33H 转换)。
按照 DLT645 协议规定,对数据域进行编码处理, 每个字节加上 0x33H,并使用模 256 运算确保结果在 0-255 范围内。
- classmethod build_frame(addr, ctrl_code, data)[源代码]
构建 DLT645 协议帧。
按照 DLT645 协议规定,构建完整的协议帧,包括前导字节、 地址域、控制码、数据域、校验和和结束标志。
- 参数:
- 返回:
完整的 DLT645 协议帧。
- 返回类型:
- 抛出:
ValueError -- 当地址长度不为6字节时抛出。