一个小游戏/问答:你看到我的数值了吗?(解读十六进制数值)

6

好的,我需要一些帮助……我有一个蓝牙低功耗体重秤。我可以将我的树莓派连接到该秤并获取一些数据。但是对我来说,很难读取这些十六进制值。

每次测量后,我都会得到两行信息,其中应该包含我的数值

(我模拟了所有测量……人5只是我用手推压秤……人2 + 3是我穿袜子站在秤上,所以如果您发现一些不真实的值,请不要给我一些医疗建议:D)

秤:起始重量为5.0kg(官方上,但我可以看到一个起始点为4.9),最大重量为180kg(这可能只是一个安全提示。它是一款玻璃秤),d = 100g

我从显示器上注意到的:

#  | Person | m kg| Fat % | TbW % | Mus % | Bone kg | kcal | BMI
1  |   5    |13,3 |   5   |  72,7 |  60,1 |   0,8   | 1056 | 13,3
2  |   3    |73,6 |  26,3 |  51,1 |  34,2 |   3,5   | 2428 | 24,3
3  |   2    |76,8 |  18,5 |  61,1 |  41,9 |   3,4   | 2741 | 24,8
4  |   5    |15,0 |   5   |  70,3 |  58,4 |   0,9   | 1092 | 15,0
5  |   6    | 5,1 |   5   |  73   |  66,5 |   0,5   | 881  | 5,1

我通过蓝牙收到的内容:

# | handle | Byte   0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18
-----------------------------------------------------------------------------
1 | 0x001b | value: 1d 32 05 00 fe 0f 13 11 11 01 12 00 ff 05 09 00 00 00 00  
1 | 0x001e | value: 6f 0f 13 11 11 05 20 04 32 f0 d7 f2 59 f2 08 f0 00 00 00 
-----------------------------------------------------------------------------
2 | 0x001b | value: 1d c0 1c 00 fe 45 06 00 00 7a 13 00 ff 03 09 00 00 00 00  
2 | 0x001e | value: 6f 45 06 00 00 03 7c 09 07 f1 ff f1 56 f1 23 f0 00 00 00 
-----------------------------------------------------------------------------
3 | 0x001b | value: 1d 00 1e 00 fe 37 01 00 00 d7 12 00 ff 02 09 00 00 00 00  
3 | 0x001e | value: 6f 37 01 00 00 02 b5 0a b9 f0 63 f2 a3 f1 22 f0 00 00 00 
-----------------------------------------------------------------------------
4 | 0x001b | value: 1d dc 05 00 fe 80 14 11 11 83 18 00 ff 05 09 00 00 00 00  
4 | 0x001e | value: 6f 80 14 11 11 05 44 04 32 f0 bf f2 48 f2 09 f0 00 00 00 
-----------------------------------------------------------------------------
5 | 0x001b | value: 1d fe 01 00 fe 5c 15 11 11 ac 16 00 ff 06 09 00 00 00 00   
5 | 0x001e | value: 6f 5c 15 11 11 06 71 03 32 f0 da f2 99 f2 05 f0 00 00 00 

注意: 每次在接收值之前,我必须向我的秤发送一个Unix时间戳...大多数时候,我只是发送1111111111或0000000000或类似的东西..但是我没有注意到我发送了什么..抱歉..
总是有另一行输入,我发现用户值存储在秤中。所以我认为这些都不重要,但也许我错了。
P2,男性,身高:176cm,年龄:34 P3,女性,身高:174cm,年龄:23 P5,男性,身高:100cm,年龄:10
所以也许有人可以告诉我,我在哪里可以找到代表我的体重信息的信息。我只看到了人员编号。
感谢您的帮助,来自德国的问候。
2个回答

4

好的,我解决了...

0x1b:

重量:字节:1和2

时间戳:字节5-8

人员:字节13

0x1e:

时间戳:字节1-4

人员:5

kcal:6和7

脂肪:8和9

总体水分含量(TBW):10和11

肌肉:12和13

骨头:14和15


2

为了添加更多细节: 值解码为无符号整数,小端。由于某些不明原因,2字节(short)整数的最高有效半字节为0xf。 传输以指示0x25开始,其中包含检测到的人员的编程属性(即体重在上次测量的正负2公斤范围内)。

0x25:
person: byte 2
gender: byte 4 (1=male, 2=female)
age: byte 5
size: byte 6
activity: byte 8 (0=normal, 3=high)

性别:字节4(3 = 男性运动员,4 = 女性运动员),但目前还不确定。但大概是这样的。 - Edmundo Del Gusto
1
性别是第4个字节,运动被我称为上面所说的“活动”。当选择运动时,第8个字节显示0x03。感谢您的Kickstarter,现在可以完全操作Python代码与树莓通信和评估! - Keptenkurk
你打算在哪里发布你的完整代码? - Edmundo Del Gusto
1
在 https://github.com/keptenkurk/BS440 中找到正在进行的工作。下一步将是填充数据库并绘制内容的图形。 - Keptenkurk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接