From b3f8490995652b1fa56a44c69e6a2137e5afd8a8 Mon Sep 17 00:00:00 2001 From: Arjan Schrijver Date: Fri, 30 Aug 2024 21:37:33 +0200 Subject: [PATCH] Moyoung: Support syncing historical HR measurements --- .../devices/moyoung/FetchDataOperation.java | 1 + .../devices/moyoung/MoyoungDeviceSupport.java | 60 ++++++++++++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/moyoung/FetchDataOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/moyoung/FetchDataOperation.java index b5216fe30..ea12cea6c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/moyoung/FetchDataOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/moyoung/FetchDataOperation.java @@ -64,6 +64,7 @@ public class FetchDataOperation extends AbstractBTLEOperation hrSamples = new ArrayList<>(); + final Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DAY_OF_MONTH, -daysAgo); + cal.set(Calendar.SECOND, 0); + int index = 1; + for (int hour=startHour; hour= 7) return; // 8 packets = 2 days, the maximum + try { + TransactionBuilder builder = performInitialized("FetchHROperation"); + sendPacket(builder, MoyoungPacketOut.buildPacket(getMtu(), MoyoungConstants.CMD_QUERY_PAST_HEART_RATE_1, new byte[]{(byte) (packetIndex+1)})); + builder.queue(getQueue()); + } catch (IOException e) { + LOG.error("Failed sending HR history request packet: ", e); + } + } + + public void handleStepsHistory(int daysAgo, byte[] data, boolean isRealtime) { if (data.length != 9) throw new IllegalArgumentException();