有人知道把一个十六进制字符转换成特定的ctype变量的方法吗?在
为了详细说明,我需要创建一个函数,该函数接受十六进制字符列表和表示数据类型的字符串,并根据指定的数据类型生成一个值。在
我正在分析MAVlink字段,这些字段的值采用以下数据类型:uint64\u、uint32\u t、int32\u t、uint16\u t、uint8\u t、int8\u t、float、char
此外,字段的值可以是上述类型的数组。在
这就是我现在的功能:
def getValue(payload, ftype):
# Check if signed or unsigned
if ftype.find("uint") != -1: signed = False
# Check size of data type
if ftype.find('int8_t') != -1: stride = 1
elif ftype.find('int16_t') != -1: stride = 2
elif ftype.find('int32_t') != -1: stride = 4
elif ftype.find('float') != -1: stride = 4
else: stride = 1 (Assume characters)
chars = []
while(stride > 0):
# Pop two characters to get one byte
chars.append(payload.pop(0))
chars.append(payload.pop(0))
stride -= 1
# Convert selected characters to value of specified data type
return convertToValueAsString(chars, ftype) # I don't know how to do this
我看了一下ctypes和ctypes.uint*_t、 值(a)。但是,当数据类型是字符串而不是已知值时,我不确定如何使用此函数。在
使用^{} 模块。在
相关问题 更多 >
编程相关推荐