Pebble: add more Datalogging endpoint debug output
This commit is contained in:
parent
d0fbc57cf1
commit
027e6fe8c3
|
@ -113,8 +113,11 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||||
static final byte APPLICATIONMESSAGE_ACK = (byte) 0xff;
|
static final byte APPLICATIONMESSAGE_ACK = (byte) 0xff;
|
||||||
static final byte APPLICATIONMESSAGE_NACK = (byte) 0x7f;
|
static final byte APPLICATIONMESSAGE_NACK = (byte) 0x7f;
|
||||||
|
|
||||||
static final byte DATALOG_CLOSE = (byte) 0x03;
|
static final byte DATALOG_OPENSESSION = 0x01;
|
||||||
|
static final byte DATALOG_SENDDATA = 0x02;
|
||||||
|
static final byte DATALOG_CLOSE = 0x03;
|
||||||
static final byte DATALOG_TIMEOUT = 0x07;
|
static final byte DATALOG_TIMEOUT = 0x07;
|
||||||
|
static final byte DATALOG_REPORTSESSIONS = (byte) 0x84;
|
||||||
static final byte DATALOG_ACK = (byte) 0x85;
|
static final byte DATALOG_ACK = (byte) 0x85;
|
||||||
static final byte DATALOG_NACK = (byte) 0x86;
|
static final byte DATALOG_NACK = (byte) 0x86;
|
||||||
|
|
||||||
|
@ -1007,7 +1010,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GBDeviceEventScreenshot decodeResponseScreenshot(ByteBuffer buf, int length) {
|
private GBDeviceEventScreenshot decodeScreenshot(ByteBuffer buf, int length) {
|
||||||
if (mDevEventScreenshot == null) {
|
if (mDevEventScreenshot == null) {
|
||||||
byte result = buf.get();
|
byte result = buf.get();
|
||||||
mDevEventScreenshot = new GBDeviceEventScreenshot();
|
mDevEventScreenshot = new GBDeviceEventScreenshot();
|
||||||
|
@ -1056,7 +1059,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GBDeviceEventDismissNotification decodeResponseNotificationAction(ByteBuffer buf) {
|
private GBDeviceEventDismissNotification decodeNotificationAction(ByteBuffer buf) {
|
||||||
buf.order(ByteOrder.LITTLE_ENDIAN);
|
buf.order(ByteOrder.LITTLE_ENDIAN);
|
||||||
|
|
||||||
byte command = buf.get();
|
byte command = buf.get();
|
||||||
|
@ -1078,7 +1081,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GBDeviceEventSendBytes decodeResponsePing(ByteBuffer buf) {
|
private GBDeviceEventSendBytes decodePing(ByteBuffer buf) {
|
||||||
byte command = buf.get();
|
byte command = buf.get();
|
||||||
if (command == PING_PING) {
|
if (command == PING_PING) {
|
||||||
int cookie = buf.getInt();
|
int cookie = buf.getInt();
|
||||||
|
@ -1108,6 +1111,36 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private GBDeviceEventSendBytes decodeDatalog(ByteBuffer buf, short length) {
|
||||||
|
byte command = buf.get();
|
||||||
|
byte id = buf.get();
|
||||||
|
if (command == DATALOG_TIMEOUT) {
|
||||||
|
LOG.info("DATALOG TIMEOUT. id=" + (id & 0xff) + " - ignoring");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (command == DATALOG_SENDDATA) {
|
||||||
|
buf.order(ByteOrder.LITTLE_ENDIAN);
|
||||||
|
int items_left = buf.getInt();
|
||||||
|
int crc = buf.getInt();
|
||||||
|
LOG.info("DATALOG SENDDATA. id=" + (id & 0xff) + ", items_left=" + items_left + ", total length=" + (length - 9));
|
||||||
|
} else if (command == DATALOG_OPENSESSION) {
|
||||||
|
buf.order(ByteOrder.BIG_ENDIAN);
|
||||||
|
long uuid_high = buf.getLong();
|
||||||
|
long uuid_low = buf.getLong();
|
||||||
|
UUID uuid = new UUID(uuid_high, uuid_low);
|
||||||
|
buf.order(ByteOrder.LITTLE_ENDIAN);
|
||||||
|
int timestamp = buf.getInt();
|
||||||
|
int log_tag = buf.getInt();
|
||||||
|
byte item_type = buf.get();
|
||||||
|
short item_size = buf.get();
|
||||||
|
LOG.info("DATALOG OPENSESSION. id=" + (id & 0xff) + ", App UUID=" + uuid.toString() + ", item_type=" + item_type + ", item_size=" + item_size);
|
||||||
|
}
|
||||||
|
LOG.info("sending ACK (0x85)");
|
||||||
|
GBDeviceEventSendBytes sendBytes = new GBDeviceEventSendBytes();
|
||||||
|
sendBytes.encodedBytes = encodeDatalog(id, DATALOG_ACK);
|
||||||
|
return sendBytes;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GBDeviceEvent decodeResponse(byte[] responseData) {
|
public GBDeviceEvent decodeResponse(byte[] responseData) {
|
||||||
ByteBuffer buf = ByteBuffer.wrap(responseData);
|
ByteBuffer buf = ByteBuffer.wrap(responseData);
|
||||||
|
@ -1306,18 +1339,6 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ENDPOINT_DATALOG:
|
|
||||||
pebbleCmd = buf.get();
|
|
||||||
if (pebbleCmd != DATALOG_TIMEOUT) {
|
|
||||||
byte id = buf.get();
|
|
||||||
LOG.info("DATALOG id " + id + " - sending ACK (0x85)");
|
|
||||||
GBDeviceEventSendBytes sendBytes = new GBDeviceEventSendBytes();
|
|
||||||
sendBytes.encodedBytes = encodeDatalog(id, DATALOG_ACK);
|
|
||||||
devEvt = sendBytes;
|
|
||||||
} else {
|
|
||||||
LOG.info("DATALOG TIMEOUT - ignoring");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ENDPOINT_PHONEVERSION:
|
case ENDPOINT_PHONEVERSION:
|
||||||
pebbleCmd = buf.get();
|
pebbleCmd = buf.get();
|
||||||
switch (pebbleCmd) {
|
switch (pebbleCmd) {
|
||||||
|
@ -1331,15 +1352,18 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ENDPOINT_DATALOG:
|
||||||
|
devEvt = decodeDatalog(buf, length);
|
||||||
|
break;
|
||||||
case ENDPOINT_SCREENSHOT:
|
case ENDPOINT_SCREENSHOT:
|
||||||
devEvt = decodeResponseScreenshot(buf, length);
|
devEvt = decodeScreenshot(buf, length);
|
||||||
break;
|
break;
|
||||||
case ENDPOINT_EXTENSIBLENOTIFS:
|
case ENDPOINT_EXTENSIBLENOTIFS:
|
||||||
case ENDPOINT_NOTIFICATIONACTION:
|
case ENDPOINT_NOTIFICATIONACTION:
|
||||||
devEvt = decodeResponseNotificationAction(buf);
|
devEvt = decodeNotificationAction(buf);
|
||||||
break;
|
break;
|
||||||
case ENDPOINT_PING:
|
case ENDPOINT_PING:
|
||||||
devEvt = decodeResponsePing(buf);
|
devEvt = decodePing(buf);
|
||||||
break;
|
break;
|
||||||
case ENDPOINT_APPFETCH:
|
case ENDPOINT_APPFETCH:
|
||||||
devEvt = decodeAppFetch(buf);
|
devEvt = decodeAppFetch(buf);
|
||||||
|
|
Loading…
Reference in New Issue