Skip to content

getStates() not work #20

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];
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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