问题描述
需要帮助来解析血糖仪android BLE上的膳食类型。
这是我的数据: [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 (将#修改为@)