小编Min*_*ine的帖子

Python struct.pack()数据范围错误

我正在使用 python2.7 并且我有这段代码。数据值的范围是 0 到 65792。

data_length=30
code=202
data=[51400,31400,100,51400,31400,100,51400,31400,100]
checksum = 0
total_data = ['$', 'M', '<', data_length, code] + data
for i in struct.pack('<2B%dh' % len(data), *total_data[3:len(total_data)]):
    checksum = checksum ^ ord(i)
total_data.append(checksum)
try:
    b = None
    b = self.ser.write(struct.pack('<3c2B%dhB' % len(data), *total_data))
except Exception, error:
    print "\n\nError in sendCMD."
    print "("+str(error)+")\n\n"
    pass

struct.pack('<2B%dh' % len(data), *total_data[3:len(total_data)]):
Run Code Online (Sandbox Code Playgroud)

并给我这个错误:

for i in struct.pack('<2B%dh' % len(data), *total_data[3:len(total_data)]):
struct.error: short format requires SHRT_MIN <= number <= SHRT_MAX
Run Code Online (Sandbox Code Playgroud)

struct.pack python-2.7

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

python-2.7 ×1

struct.pack ×1