You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Accucheck血糖仪BLE特征值解析为血糖值的方法

解析Accucheck血糖仪BLE特征值获取血糖值

问题

通过BLE读取Accucheck血糖仪数据时,无法解析BLE返回的特征值数组得到对应血糖值:

  • 特征值数组 [27, 15, 0, 232, 7, 1, 30, 5, 58, 27, 83, 1, 111, 176, 248, 0, 0] → 对应血糖值 6.2(mmol/L)
  • 特征值数组 [27, 13, 0, 232, 7, 1, 29, 11, 21, 52, 83, 1, 115, 176, 248, 0, 0] → 对应血糖值 6.4(mmol/L)

分析与解决方案

对比两组数组的差异,可明确核心关联逻辑:

  1. 数组中索引12的元素是血糖值的mg/dL整数取整值
  2. 将该值除以18,即可得到mmol/L单位的血糖值(保留1位小数)

验证

  • 示例1:111 ÷ 18 ≈ 6.17 → 四舍五入为6.2,匹配设备读数
  • 示例2:115 ÷ 18 ≈ 6.39 → 四舍五入为6.4,匹配设备读数

代码实现(Python)

def get_glucose_mmol(ble_feature_array):
    # 提取mg/dL整数取值
    mg_dl_value = ble_feature_array[12]
    # 转换为mmol/L并保留1位小数
    mmol_l_value = round(mg_dl_value / 18, 1)
    return mmol_l_value

# 测试示例
test_data1 = [27, 15, 0, 232, 7, 1, 30, 5, 58, 27, 83, 1, 111, 176, 248, 0, 0]
print(get_glucose_mmol(test_data1))  # 输出 6.2

test_data2 = [27, 13, 0, 232, 7, 1, 29, 11, 21, 52, 83, 1, 115, 176, 248, 0, 0]
print(get_glucose_mmol(test_data2))  # 输出 6.4

补充说明

Accucheck设备通常以mg/dL为内部存储单位,BLE传输时直接发送整数形式的mg/dL值。数组中索引11的1为单位标识(代表mg/dL),若后续遇到其他单位标识,可根据实际单位转换规则调整系数。

内容的提问来源于stack exchange,提问作者Shubham Shaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 10:14:55