需要帮助来解析血糖仪android BLE上的饭食类型

问题描述

需要帮助来解析血糖仪android BLE上的膳食类型。

https://github.com/oesmith/gatt-xml/blob/master/org.bluetooth.characteristic.glucose_measurement_context.xml

这是我的数据: [27,5,0,-28,7,8,24,17,18,41,-29,1,102,-80,-8,0,0]

我也发现了这个: C3:如果字段的第1位的密钥存在,则该字段存在 标志字段设置为1

这是我的枚举

public static Meal from(final int code) {
    switch (code) {
        case 1:
            return PREPRANDIAL;
        case 2:
            return POSTPRANDIAL;
        case 3:
            return FASTING;
        case 4:
            return CASUAL;
        case 5:
            return BEDTIME;
        default:
            return RESERVED;
    }
}

这是我的代码,但我的进餐类型值大于20,而不是小于6

    public final ByteBuffer data;
    public final byte flags;
    public byte secondaryFlags;
    public byte carbFlags;
    public int carbInfo;
    public int mealType = -1;
    public final int sequence;
    public final boolean hasSecondaryFlags;
    public final boolean hasMealType;
    public final boolean hasCarbInfo;

    public ContextBG(byte[] packet) {
        data = ByteBuffer.wrap(packet).order(ByteOrder.LITTLE_ENDIAN);

        flags = data.get();
        hasSecondaryFlags = (flags & 128) > 0;
        hasMealType = (flags & 2) > 0;
        hasCarbInfo = (flags & 1) > 0;

        sequence = data.getShort();

        if (hasSecondaryFlags) {
            secondaryFlags = data.get();
        }

        if (hasCarbInfo) {
            carbFlags = data.get();
            carbInfo = data.getShort();
        }

        if (hasMealType) {
            mealType = data.get();
            Log.d("MEAL TYPE","======= " + mealType);
        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)