m = np.logspace(7, 0, 8, base=2, dtype=int) # logspace()函数用于创建一个于等比数列的数组
n = np.logspace(-1, -8, 8, base=2, dtype=int) # logspace()函数用于创建一个于等比数列的数组
# 即[128 64 32 16 8 4 2 1],8位二进制数各位的权值
data_array = np.array(data) # 将data列表转换为数组
# dot()函数对于两个一维的数组,计算的是这两个数组对应下标元素的乘积和(数学上称之为内积)
humidity = m.dot(data_array[0:8]) # 用前8位二进制数据计算湿度的十进制值
humidity_point = n.dot(data_array[8:16])
temperature = m.dot(data_array[16:24])
temperature_point = n.dot(data_array[24:32])
check = data_array[32:40]
print(humidity, humidity_point, temperature, temperature_point, check)
tmp = (data_array[0:8] + data_array[8:16] + data_array[16:24] + data_array[24:32])&255
# 二进制的数据相加
humidity = humidity+humidity_point
temperature = temperature+temperature_point
#整数加小数
if check == tmp: # 数据校验,相等则输出
return humidity, temperature
else: # 错误输出错误信息
return False
1651989498494
最新推荐文章于 2024-09-06 22:05:33 发布