Files
DebugTool/source/device/tools/ByteConv.py
2024-12-12 22:02:09 +08:00

40 lines
1.2 KiB
Python

def trans_list_to_str(data: list, word_len=2, prefix='') -> str:
""" 标准串口字符串表示 """
func_trans_word = lambda x: prefix + ('0' * word_len + hex(x % (0x10 ** word_len))[2:])[-word_len:].upper()
return " ".join(map(func_trans_word, data))
def trans_str_to_list(data: str) -> list:
""" 标准串口字符串转换列表 """
func_trans = lambda x: int(x, 16)
return list(map(func_trans, data.strip().split(" ")))
def conv_int_to_array(num: int, big_end=False):
""" 数值转字节数组 """
result = [0, 0, 0, 0]
if big_end:
indexlist = reversed(range(len(result)))
else:
indexlist = range(len(result))
for i in indexlist:
result[i] = int(num % 0x100)
num //= 0x100
return result
def display_hex(data:int, length:int=2) -> str:
""" Hex字符固定最小长度表示 """
return f"0x{data:0{length}X}"
def trans_list_to_str_by_word(data: list, big_end=True) -> str:
""" 将数据以word格式显示 """
s = [data[i+1] * 0x100 + data[i] for i in range(0, len(data), 2)]
r = " ".join(map(hex, s))
print(data)
print(trans_list_to_str(data))
print(r)
return r