in amazonfreertossdk/src/main/java/software/amazon/freertos/amazonfreertossdk/AmazonFreeRTOSDevice.java [1087:1105]
private void sendDataToDevice(final String service, final String rx, final String rxlarge, byte[] data) {
if (data != null) {
if (data.length < mMaxPayloadLen) {
sendBleCommand(new BleCommand(WRITE_CHARACTERISTIC, rx, service, data));
} else {
mTotalPackets = data.length / mMaxPayloadLen + 1;
Log.i(TAG, "This message is larger than max payload size: " + mMaxPayloadLen
+ ". Breaking down to " + mTotalPackets + " packets.");
mPacketCount = 0; //reset packet count
while (mMaxPayloadLen * mPacketCount <= data.length) {
byte[] packet = Arrays.copyOfRange(data, mMaxPayloadLen * mPacketCount,
Math.min(data.length, mMaxPayloadLen * mPacketCount + mMaxPayloadLen));
mPacketCount++;
Log.d(TAG, "Packet #" + mPacketCount + ": " + bytesToHexString(packet));
sendBleCommand(new BleCommand(WRITE_CHARACTERISTIC, rxlarge, service, packet));
}
}
}
}