如何从字节数组中解释温度值

问题描述 投票:0回答:1

我正在对核桃健康温度计进行逆向工程。我可以获得 97.7 华氏度的原始数据。完全就是这样。

    DATA: [85, 1, 109, 1, 88, 0, 114, 11, 6, 18] 
    DATA: [85, 1, 109, 1, 88, 0, 114, 11, 6, 18] 
    DATA: [85, 1, 109, 1, 88, 0, 114, 11, 6, 18] 
    DATA: [85, 1, 109, 1, 88, 0, 114, 11, 6, 18]
    DATA: [85, 1, 109, 1, 88, 0, 114, 11, 6, 18]
    DATA: [86, 1, 109, 1, 88, 0, 114, 11, 6, 18]

对于 92.5 华氏度来说是

    DATA: [78, 1, 78, 1, 83, 0, 84, 11, 6, 18] 
    DATA: [79, 1, 79, 1, 83, 0, 84, 11, 6, 18] 
    DATA: [79, 1, 79, 1, 83, 0, 84, 11, 6, 18] 
    DATA: [79, 1, 79, 1, 83, 0, 84, 11, 6, 18]
    DATA: [79, 1, 79, 1, 83, 0, 84, 11, 6, 18] 
    DATA: [78, 1, 78, 1, 83, 0, 84, 11, 6, 18] 
    DATA: [78, 1, 78, 1, 83, 0, 84, 11, 6, 18] 
    DATA: [78, 1, 78, 1, 83, 0, 84, 11, 6, 18]
    DATA: [78, 1, 78, 1, 83, 0, 84, 11, 6, 18] 
    DATA: [78, 1, 78, 1, 83, 0, 84, 11, 6, 18]

我从它自己的应用程序测量了温度值,所以它不完全是 92.5 左右的值

我的问题是;如何解释字节数组中的温度值?

bluetooth-lowenergy reverse-engineering
1个回答
0
投票

在爪哇,

 int result = ((data[3] & 0xFF) << 8) | (data[2] & 0xFF);

 float celsius = (float) result / 10;
 float fahrenheit = celsius *9/5 + 32;

这段代码对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.