Skip to content

getStates() not work #20

@viegoooo

Description

@viegoooo

getRawPayloadBytesPadded()中
byte[] encData = subbytes(data, BLDevice.DEFAULT_BYTES_SIZE, data.length);
已经去掉了长度 DEFAULT_BYTES_SIZE = 0x38; // 56-bytes 的header ,然而在getStatesRaw() 中截取state时又算上了header的长度。
解决方法 :
if (pl[0x3c] >= 48 && pl[0x3c] <= 57) {
String decodeValue1;
decodeValue1 = String.valueOf(pl[0x46]);
state = Short.decode(decodeValue1).byteValue();
} else {
state = pl[0x46];
}

0x3c 和0x46的地方的地方需要减去 DEFAULT_BYTES_SIZE = 0x38 的长度。
if (pl[0x4] >= 48 && pl[0x4] <= 57) {
String decodeValue1;
decodeValue1 = String.valueOf(pl[0xe]);
state = Short.decode(decodeValue1).byteValue();
} else {
state = pl[0xe];
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions