src.common package
Submodules
src.common.base_log module
- class src.common.base_log.Log(filename=None, cmdlevel='DEBUG', filelevel='INFO', backup_count=7, limit='20 MB', when=None, colorful=True, compression=None, is_backtrace=True)[源代码]
基类:
object
src.common.env module
src.common.transform module
数据转换工具模块。
本模块提供了 DLT645 协议所需的各种数据转换功能,包括: - 字节数组与整数/浮点数之间的转换 - BCD 码与数值/字符串之间的转换 - 日期时间与 BCD 码之间的转换 - 十六进制格式化等辅助功能
- src.common.transform.bytes_to_int(byte_array)[源代码]
将字节数组转换为无符号整数。
使用小端序进行转换,如果字节数组长度不足4字节, 会在右侧补零至4字节。
- src.common.transform.bytes_to_float(byte_array)[源代码]
将字节数组转换为浮点数。
使用小端序进行转换,如果字节数组长度不足4字节, 会在右侧补零至4字节。
- src.common.transform.bytes_to_spaced_hex(data)[源代码]
将字节数组转换为空格分隔的十六进制字符串。
每两个十六进制字符用空格分隔,便于阅读和调试。 例如: bytearray([0x68, 0xAA]) -> "68 aa"
- src.common.transform.bcd_to_string(bcd, endian='big')[源代码]
将 BCD 码字节数组转换为数字字符串。
BCD(Binary-Coded Decimal)码是一种用4位二进制数表示十进制数字的编码方式。 每个字节包含两个 BCD 数字(高4位和低4位)。
- src.common.transform.parse_format(format_str)[源代码]
解析数据格式字符串,返回小数位数和总位数。
格式字符串示例: - "XXXXXX.XX" -> (2, 8) 表示8位数字,2位小数 - "XXXX.XX" -> (2, 6) 表示6位数字,2位小数 - "XXXXXXXX" -> (0, 8) 表示8位整数,无小数
- 参数:
format_str (str) -- 格式字符串。
- 返回:
元组 (小数位数, 总位数)。
- 返回类型:
- 抛出:
ValueError -- 当格式字符串无效时抛出。
- src.common.transform.string_to_bcd(digits, endian='big')[源代码]
将数字字符串转换为 BCD 码字节数组。
如果数字字符串长度为奇数,会在前面补零使其变为偶数长度。
- src.common.transform.bcd_to_value(bcd, format_str, endian='big')[源代码]
将 BCD 码字节数组转换为数值。
根据格式字符串决定返回类型: - 如果格式字符串不包含小数点,返回数字字符串 - 如果格式字符串包含小数点,返回浮点数
- src.common.transform.float_to_bcd(value, format_str, endian='big')[源代码]
将浮点数转换为 BCD 码字节数组。
支持正负数转换,负数会在最高位设置符号位(0x80)。
- src.common.transform.bcd_to_float(bcd, format_str, endian='big')[源代码]
将 BCD 码字节数组转换为浮点数。
支持带符号位的 BCD 码转换,最高位为 0x80 时表示负数。
- src.common.transform.datetime_to_bcd(t)[源代码]
将 datetime 对象转换为 BCD 码字节数组(小端序)。
输出格式为:分时日月年(小端序),共5字节。 年份只取后两位(如 2025 -> 25)。
- 参数:
t (datetime) -- datetime 对象。
- 返回:
BCD 码字节数组,长度为5字节。
- 返回类型:
- src.common.transform.bcd_to_time(bcd)[源代码]
将 BCD 码字节数组转换为 datetime 对象。
输入格式为:年月日时分(大端序),共5字节。 年份假设为21世纪(如 25 -> 2025)。
- 参数:
- 返回:
解析后的 datetime 对象。
- 返回类型:
datetime
- 抛出:
ValueError -- 当 BCD 码长度不足5字节时抛出。
- src.common.transform.uint8_to_bcd(n)[源代码]
将 0-99 范围内的整数转换为 BCD 码。
例如:25 -> 0x25
- 参数:
n (int) -- 0-99 范围内的整数。
- 返回:
对应的 BCD 码值。
- 返回类型:
- 抛出:
ValueError -- 当输入不在 0-99 范围内时抛出。