如何解决如何在Python中将2个字节3个位置移位?
我已经从节气门位置传感器向此宽带模块上的“用户3”输入运行5v信号。它具有一个RS232接口,用于记录数据。到目前为止,我已经能够识别帧头以及哪些字节对应于“用户3”。我还验证了随着节气门打开,这些字节会增加。 https://www.wbo2.com/sw/logger.htm
相关文档
字节10至15是三个0至5.00伏用户输入U1,U2和 U3(与2.0版相比,还有其他用户输入可用 至1.5)。尽管这些输入仅被采样了一次,但它们被移位了 范围为0到8184(即1024步-0、8、16 .. 8176、8184) 以获得1.5版的兼容性。
在2.0单元上,每个通道只有一个10位样本,但是 结果移动了3位以与1.5数据兼容。 (例如,对于版本1.5,共有1024个步骤-0、8、16 .. 8176、8184) 兼容性。
我不明白如何将字节转换为伏特。例子
- 油门关闭'\ x03 \ xd8'(〜0.67v)
- 节气门打开'\ x1c \ x18'(〜4.65v)
解决方法
这似乎是[0,8184]到[0.0,5.0]范围内的简单线性变换
那将使转换方程
voltage = hex_in / 8184 * 5.0
hex_in是由这两个字节组成的整数。不幸的是,该算法与您的示例不符:
>>> 0x3d8 / 8192 * 5.0
0.6005859375
>>> 0x3d8 / 8184 * 5.0
0.6011730205278593
>>> 0x1c18 / 8184 * 5.0
4.393939393939394
如果您的示例有误,也许我们有解决方案。如果它们是准确的,那么我们需要对值编码进行完整的描述。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。