40 lines
1.2 KiB
Python
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
|