EMV延迟参数集成,旧EMV在同名文件夹下EMV_old_save
This commit is contained in:
20
EMV/code_statue_test.py
Normal file
20
EMV/code_statue_test.py
Normal file
@ -0,0 +1,20 @@
|
||||
def parse_coil_status_response(response_hex):
|
||||
"""
|
||||
解析 Modbus 功能码 0x01 的响应(读线圈状态)
|
||||
:param response_hex: 十六进制字符串,如 '00000000000401010101'
|
||||
:return: dict,表示每个 bit 的状态(True/False)
|
||||
"""
|
||||
if len(response_hex) < 18:
|
||||
return {"error": "响应数据过短"}
|
||||
|
||||
data_part = response_hex[14:18] # 提取 0101 部分
|
||||
status_byte = int(data_part[2:4], 16) # 取出 01 → 十进制 1
|
||||
|
||||
# 每个 bit 对应一个设备,bit0 是最低位
|
||||
status = {f"device_{i}": (status_byte >> i) & 0x01 == 1 for i in range(8)}
|
||||
return status
|
||||
|
||||
# 示例使用
|
||||
response = "00000000000401010103"
|
||||
status = parse_coil_status_response(response)
|
||||
print("设备状态:", status)
|
||||
Reference in New Issue
Block a user