如何使用 NFC 在 freestyle liber 中找到葡萄糖值

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

我试过取葡萄糖值,借助这篇文章,我知道freestyle liber有趋势记录(8hr)和历史记录(24hr)会携带葡萄糖。我已经搜索了 android 和 flutter 来获取葡萄糖值形式的 freestyle liber,然后得到了一些 GitHub 链接作为下面的参考列表

  1. vicktor/FreeStyleLibre-NFC-Reader
  2. DorianScholz/OpenLibre
  3. cominixo/OpenLibreNFC
  4. creepymonster/GlucoseDirect

根据上面的 GitHub 参考,我创建了这个方法,但葡萄糖值高于 1000

我们需要70到240的葡萄糖值

List getHistoryData(memoryDatafromNFC) {
    List result = [];
    int watchTime = DateTime.now().millisecondsSinceEpoch;
    int indexTrend = memoryDatafromNFC[26];
    int sensorTime = 256 * (memoryDatafromNFC[317]) + (memoryDatafromNFC[316]);
    int sensorStartTime = watchTime - sensorTime * 60000;

    for (int index = 0; index < 32; index++) {
      int i = indexTrend - index - 1;
      if (i < 0) i += 32;
      int time = [0, (((sensorTime - 3) / 15).abs() * 15 - index * 15).round()]
          .reduce(max);
      DateTime readTime =
          DateTime.fromMillisecondsSinceEpoch(sensorStartTime + time * 60000);
      result.add(
      {
        "timeStamp":DateTime(readTime.year, readTime.month, readTime.day, readTime.hour,
              readTime.minute),
          "glucoseValue":getGlucoseValue(
            memoryDatafromNFC[(i * 6 + 125)],
            memoryDatafromNFC[(i * 6 + 124)],
          ),
      }
      );
    }
    return result;
  }

  double getGlucoseValue(int fstByte, int sndByte) {
    return (((256 * fstByte) + (sndByte)) & 0x0FFF) / 1;
  }
android flutter dart nfc lib-nfc
© www.soinside.com 2019 - 2024. All rights reserved.