mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
garmin: extend FIT file parsing (#5339)
This updates the parser to interpret more FIT information and display it in the FIT file viewer. Actually using the available information isn't part of this PR.
This commit is contained in:
committed by
José Rebelo
parent
e51aeb9216
commit
80aeaead1a
+5
@@ -48,9 +48,13 @@ public class FileType {
|
||||
COURSES(128, 6),
|
||||
SCHEDULES(128, 7),
|
||||
LOCATION(128, 8),
|
||||
WEIGHT(128, 9),
|
||||
TOTALS(128, 10),
|
||||
GOALS(128, 11),
|
||||
BLOOD_PRESSURE(128, 14),
|
||||
MONITOR_A(128, 15),
|
||||
SUMMARY(128, 20),
|
||||
MONITOR_DAILY(128, 28),
|
||||
RECORDS(128, 29),
|
||||
UNKNOWN_31(128, 31), // sent by HRM Pro Plus
|
||||
MONITOR(128, 32),
|
||||
@@ -78,6 +82,7 @@ public class FileType {
|
||||
FBT_BACKUP(128, 72),
|
||||
SKIN_TEMP(128, 73),
|
||||
FBT_PTD_BACKUP(128, 74),
|
||||
SCHEDULE(128, 77),
|
||||
UNKNOWN_79(128, 79), // sent by instinct 3
|
||||
|
||||
// Other files
|
||||
|
||||
+776
-10
File diff suppressed because it is too large
Load Diff
+6
@@ -33,7 +33,13 @@ public class FieldDefinitionGoalType extends FieldDefinition {
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
time(0),
|
||||
distance(1),
|
||||
calories(2),
|
||||
frequency(3),
|
||||
steps(4),
|
||||
ascent(5),
|
||||
active_minutes(6)
|
||||
;
|
||||
|
||||
private final int id;
|
||||
|
||||
+36
@@ -34,7 +34,43 @@ public class FieldDefinitionLanguage extends FieldDefinition {
|
||||
|
||||
public enum Language {
|
||||
english(0),
|
||||
french(1),
|
||||
italian(2),
|
||||
german(3),
|
||||
spanish(4),
|
||||
croatian(5),
|
||||
czech(6),
|
||||
danish(7),
|
||||
dutch(8),
|
||||
finnish(9),
|
||||
greek(10),
|
||||
hungarian(11),
|
||||
norwegian(12),
|
||||
polish(13),
|
||||
portuguese(14),
|
||||
slovakian(15),
|
||||
slovenian(16),
|
||||
swedish(17),
|
||||
russian(18),
|
||||
turkish(19),
|
||||
latvian(20),
|
||||
ukrainian(21),
|
||||
arabic(22),
|
||||
farsi(23),
|
||||
bulgarian(24),
|
||||
romanian(25),
|
||||
chinese(26),
|
||||
japanese(27),
|
||||
korean(28),
|
||||
taiwanese(29),
|
||||
thai(30),
|
||||
hebrew(31),
|
||||
brazilian_portuguese(32),
|
||||
indonesian(33),
|
||||
malaysian(34),
|
||||
vietnamese(35),
|
||||
burmese(36),
|
||||
mongolian(37)
|
||||
;
|
||||
|
||||
private final int id;
|
||||
|
||||
+1
@@ -34,6 +34,7 @@ public class FieldDefinitionMeasurementSystem extends FieldDefinition {
|
||||
public enum Type {
|
||||
metric,
|
||||
imperial,
|
||||
nautical
|
||||
;
|
||||
|
||||
public static Type fromId(int id) {
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
# nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegenFitCodeGen
|
||||
# is hard coded to uses \n
|
||||
*.java text eol=lf
|
||||
+10
@@ -68,6 +68,11 @@ public class FitActivity extends RecordData {
|
||||
return (Long) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEventGroup() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
@@ -111,6 +116,11 @@ public class FitActivity extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEventGroup(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitBarometerData extends RecordData {
|
||||
public FitBarometerData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 209) {
|
||||
throw new IllegalArgumentException("FitBarometerData expects global messages of " + 209 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTimestampMs() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getSampleTimeOffset() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getBaroPres() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(2);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(209);
|
||||
}
|
||||
|
||||
public Builder setTimestampMs(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSampleTimeOffset(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBaroPres(final Number[] value) {
|
||||
setFieldByNumber(2, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitBarometerData build() {
|
||||
return (FitBarometerData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitBeatIntervals extends RecordData {
|
||||
public FitBeatIntervals(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 290) {
|
||||
throw new IllegalArgumentException("FitBeatIntervals expects global messages of " + 290 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTimestampMs() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getTime() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(290);
|
||||
}
|
||||
|
||||
public Builder setTimestampMs(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTime(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitBeatIntervals build() {
|
||||
return (FitBeatIntervals) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
//
|
||||
// WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
// See nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen
|
||||
//
|
||||
public class FitBeatsInterval extends RecordData {
|
||||
public FitBeatsInterval(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 290) {
|
||||
throw new IllegalArgumentException("FitBeatsInterval expects global messages of " + 290 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTimestampMs() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTime() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(290);
|
||||
}
|
||||
|
||||
public Builder setTimestampMs(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTime(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitBeatsInterval build() {
|
||||
return (FitBeatsInterval) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+388
@@ -0,0 +1,388 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitBikeProfile extends RecordData {
|
||||
public FitBikeProfile(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 6) {
|
||||
throw new IllegalArgumentException("FitBikeProfile expects global messages of " + 6 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSport() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSubSport() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getOdometer() {
|
||||
return (Double) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikeSpdAntId() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikeCadAntId() {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikeSpdcadAntId() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikePowerAntId() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCustomWheelsize() {
|
||||
return (Float) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAutoWheelsize() {
|
||||
return (Float) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBikeWeight() {
|
||||
return (Float) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPowerCalFactor() {
|
||||
return (Float) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAutoWheelCal() {
|
||||
return (Integer) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAutoPowerZero() {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getId() {
|
||||
return (Integer) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSpdEnabled() {
|
||||
return (Integer) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCadEnabled() {
|
||||
return (Integer) getFieldByNumber(16);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSpdcadEnabled() {
|
||||
return (Integer) getFieldByNumber(17);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPowerEnabled() {
|
||||
return (Integer) getFieldByNumber(18);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCrankLength() {
|
||||
return (Float) getFieldByNumber(19);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEnabled() {
|
||||
return (Integer) getFieldByNumber(20);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikeSpdAntIdTransType() {
|
||||
return (Integer) getFieldByNumber(21);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikeCadAntIdTransType() {
|
||||
return (Integer) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikeSpdcadAntIdTransType() {
|
||||
return (Integer) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBikePowerAntIdTransType() {
|
||||
return (Integer) getFieldByNumber(24);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getOdometerRollover() {
|
||||
return (Integer) getFieldByNumber(37);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getFrontGearNum() {
|
||||
return (Integer) getFieldByNumber(38);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getFrontGear() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(39);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getRearGearNum() {
|
||||
return (Integer) getFieldByNumber(40);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getRearGear() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(41);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getShimanoDi2Enabled() {
|
||||
return (Integer) getFieldByNumber(44);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(6);
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSport(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSubSport(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOdometer(final Double value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikeSpdAntId(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikeCadAntId(final Integer value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikeSpdcadAntId(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikePowerAntId(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCustomWheelsize(final Float value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAutoWheelsize(final Float value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikeWeight(final Float value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPowerCalFactor(final Float value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAutoWheelCal(final Integer value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAutoPowerZero(final Integer value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setId(final Integer value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSpdEnabled(final Integer value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCadEnabled(final Integer value) {
|
||||
setFieldByNumber(16, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSpdcadEnabled(final Integer value) {
|
||||
setFieldByNumber(17, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPowerEnabled(final Integer value) {
|
||||
setFieldByNumber(18, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCrankLength(final Float value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnabled(final Integer value) {
|
||||
setFieldByNumber(20, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikeSpdAntIdTransType(final Integer value) {
|
||||
setFieldByNumber(21, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikeCadAntIdTransType(final Integer value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikeSpdcadAntIdTransType(final Integer value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBikePowerAntIdTransType(final Integer value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOdometerRollover(final Integer value) {
|
||||
setFieldByNumber(37, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFrontGearNum(final Integer value) {
|
||||
setFieldByNumber(38, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFrontGear(final Number[] value) {
|
||||
setFieldByNumber(39, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRearGearNum(final Integer value) {
|
||||
setFieldByNumber(40, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRearGear(final Number[] value) {
|
||||
setFieldByNumber(41, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setShimanoDi2Enabled(final Integer value) {
|
||||
setFieldByNumber(44, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitBikeProfile build() {
|
||||
return (FitBikeProfile) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitBloodPressure extends RecordData {
|
||||
public FitBloodPressure(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 51) {
|
||||
throw new IllegalArgumentException("FitBloodPressure expects global messages of " + 51 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSystolicPressure() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDiastolicPressure() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMeanArterialPressure() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMap3SampleMean() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMapMorningValues() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMapEveningValues() {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHeartRate() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHeartRateType() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStatus() {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getUserProfileIndex() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(51);
|
||||
}
|
||||
|
||||
public Builder setSystolicPressure(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDiastolicPressure(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMeanArterialPressure(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMap3SampleMean(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMapMorningValues(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMapEveningValues(final Integer value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeartRate(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeartRateType(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStatus(final Integer value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUserProfileIndex(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitBloodPressure build() {
|
||||
return (FitBloodPressure) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitCadenceZone extends RecordData {
|
||||
public FitCadenceZone(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 131) {
|
||||
throw new IllegalArgumentException("FitCadenceZone expects global messages of " + 131 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHighValue() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(131);
|
||||
}
|
||||
|
||||
public Builder setHighValue(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitCadenceZone build() {
|
||||
return (FitCadenceZone) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitCapabilities extends RecordData {
|
||||
public FitCapabilities(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 1) {
|
||||
throw new IllegalArgumentException("FitCapabilities expects global messages of " + 1 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getLanguages() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(0);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getSports() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getWorkoutsSupported() {
|
||||
return (Long) getFieldByNumber(21);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getConnectivitySupported() {
|
||||
return (Long) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(1);
|
||||
}
|
||||
|
||||
public Builder setLanguages(final Number[] value) {
|
||||
setFieldByNumber(0, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSports(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWorkoutsSupported(final Long value) {
|
||||
setFieldByNumber(21, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setConnectivitySupported(final Long value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitCapabilities build() {
|
||||
return (FitCapabilities) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+40
@@ -43,6 +43,16 @@ public class FitConnectivity extends RecordData {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBluetoothLeEnabled() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAntEnabled() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(3);
|
||||
@@ -83,6 +93,16 @@ public class FitConnectivity extends RecordData {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getIncidentDetectionEnabled() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGrouptrackEnabled() {
|
||||
return (Integer) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -96,6 +116,16 @@ public class FitConnectivity extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBluetoothLeEnabled(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAntEnabled(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
@@ -136,6 +166,16 @@ public class FitConnectivity extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setIncidentDetectionEnabled(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGrouptrackEnabled(final Integer value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitConnectivity build() {
|
||||
return (FitConnectivity) super.build();
|
||||
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitCpeStatus extends RecordData {
|
||||
public FitCpeStatus(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 394) {
|
||||
throw new IllegalArgumentException("FitCpeStatus expects global messages of " + 394 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStatus() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartTime() {
|
||||
return (Long) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEndTime() {
|
||||
return (Long) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(394);
|
||||
}
|
||||
|
||||
public Builder setStatus(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartTime(final Long value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndTime(final Long value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitCpeStatus build() {
|
||||
return (FitCpeStatus) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+30
@@ -38,16 +38,31 @@ public class FitDeveloperData extends RecordData {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDeveloperId() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getApplicationId() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getManufacturerId() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDeveloperDataIndex() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getApplicationVersion() {
|
||||
return (Long) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -56,16 +71,31 @@ public class FitDeveloperData extends RecordData {
|
||||
super(207);
|
||||
}
|
||||
|
||||
public Builder setDeveloperId(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setApplicationId(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setManufacturerId(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDeveloperDataIndex(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setApplicationVersion(final Long value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitDeveloperData build() {
|
||||
return (FitDeveloperData) super.build();
|
||||
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitDeviceAuxBatteryInfo extends RecordData {
|
||||
public FitDeviceAuxBatteryInfo(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 375) {
|
||||
throw new IllegalArgumentException("FitDeviceAuxBatteryInfo expects global messages of " + 375 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDeviceIndex() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBatteryVoltage() {
|
||||
return (Float) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBatteryStatus() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBatteryIdentifier() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(375);
|
||||
}
|
||||
|
||||
public Builder setDeviceIndex(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatteryVoltage(final Float value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatteryStatus(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatteryIdentifier(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitDeviceAuxBatteryInfo build() {
|
||||
return (FitDeviceAuxBatteryInfo) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+150
@@ -38,6 +38,16 @@ public class FitDeviceInfo extends RecordData {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDeviceIndex() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDeviceType() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getManufacturer() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
@@ -58,6 +68,71 @@ public class FitDeviceInfo extends RecordData {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHardwareVersion() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getCumOperatingTime() {
|
||||
return (Long) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBatteryVoltage() {
|
||||
return (Float) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBatteryStatus() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSensorPosition() {
|
||||
return (Integer) getFieldByNumber(18);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getDescriptor() {
|
||||
return (String) getFieldByNumber(19);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAntTransmissionType() {
|
||||
return (Integer) getFieldByNumber(20);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAntDeviceNumber() {
|
||||
return (Integer) getFieldByNumber(21);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAntNetwork() {
|
||||
return (Integer) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getAntId() {
|
||||
return (Long) getFieldByNumber(24);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSourceType() {
|
||||
return (Integer) getFieldByNumber(25);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getProductName() {
|
||||
return (String) getFieldByNumber(27);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBatteryLevel() {
|
||||
return (Integer) getFieldByNumber(32);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
@@ -71,6 +146,16 @@ public class FitDeviceInfo extends RecordData {
|
||||
super(23);
|
||||
}
|
||||
|
||||
public Builder setDeviceIndex(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDeviceType(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setManufacturer(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
@@ -91,6 +176,71 @@ public class FitDeviceInfo extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHardwareVersion(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCumOperatingTime(final Long value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatteryVoltage(final Float value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatteryStatus(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSensorPosition(final Integer value) {
|
||||
setFieldByNumber(18, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDescriptor(final String value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAntTransmissionType(final Integer value) {
|
||||
setFieldByNumber(20, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAntDeviceNumber(final Integer value) {
|
||||
setFieldByNumber(21, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAntNetwork(final Integer value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAntId(final Long value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSourceType(final Integer value) {
|
||||
setFieldByNumber(25, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setProductName(final String value) {
|
||||
setFieldByNumber(27, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatteryLevel(final Integer value) {
|
||||
setFieldByNumber(32, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
|
||||
+87
@@ -109,6 +109,23 @@ public class FitDeviceSettings extends RecordData {
|
||||
return (Integer) getFieldByNumber(36);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getClockTime() {
|
||||
return (Long) getFieldByNumber(39);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getPagesEnabled() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(40);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMoveAlertEnabled() {
|
||||
return (Integer) getFieldByNumber(46);
|
||||
@@ -144,11 +161,21 @@ public class FitDeviceSettings extends RecordData {
|
||||
return (Integer) getFieldByNumber(59);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLactateThresholdAutodetectEnabled() {
|
||||
return (Integer) getFieldByNumber(80);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBleAutoUploadEnabled() {
|
||||
return (Integer) getFieldByNumber(86);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAutoSyncFrequency() {
|
||||
return (Integer) getFieldByNumber(89);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getAutoActivityDetect() {
|
||||
return (Long) getFieldByNumber(90);
|
||||
@@ -166,6 +193,26 @@ public class FitDeviceSettings extends RecordData {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNumberOfScreens() {
|
||||
return (Integer) getFieldByNumber(94);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSmartNotificationDisplayOrientation() {
|
||||
return (Integer) getFieldByNumber(95);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTapInterface() {
|
||||
return (Integer) getFieldByNumber(134);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTapSensitivity() {
|
||||
return (Integer) getFieldByNumber(174);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -224,6 +271,16 @@ public class FitDeviceSettings extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setClockTime(final Long value) {
|
||||
setFieldByNumber(39, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPagesEnabled(final Number[] value) {
|
||||
setFieldByNumber(40, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMoveAlertEnabled(final Integer value) {
|
||||
setFieldByNumber(46, value);
|
||||
return this;
|
||||
@@ -259,11 +316,21 @@ public class FitDeviceSettings extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLactateThresholdAutodetectEnabled(final Integer value) {
|
||||
setFieldByNumber(80, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBleAutoUploadEnabled(final Integer value) {
|
||||
setFieldByNumber(86, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAutoSyncFrequency(final Integer value) {
|
||||
setFieldByNumber(89, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAutoActivityDetect(final Long value) {
|
||||
setFieldByNumber(90, value);
|
||||
return this;
|
||||
@@ -274,6 +341,26 @@ public class FitDeviceSettings extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNumberOfScreens(final Integer value) {
|
||||
setFieldByNumber(94, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSmartNotificationDisplayOrientation(final Integer value) {
|
||||
setFieldByNumber(95, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTapInterface(final Integer value) {
|
||||
setFieldByNumber(134, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTapSensitivity(final Integer value) {
|
||||
setFieldByNumber(174, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitDeviceSettings build() {
|
||||
return (FitDeviceSettings) super.build();
|
||||
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitDeviceStatus extends RecordData {
|
||||
public FitDeviceStatus(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 104) {
|
||||
throw new IllegalArgumentException("FitDeviceStatus expects global messages of " + 104 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBatteryVoltage() {
|
||||
return (Float) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBatteryLevel() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTemperature() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(104);
|
||||
}
|
||||
|
||||
public Builder setBatteryVoltage(final Float value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatteryLevel(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTemperature(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitDeviceStatus build() {
|
||||
return (FitDeviceStatus) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitDeviceUsed extends RecordData {
|
||||
public FitDeviceUsed(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 22) {
|
||||
throw new IllegalArgumentException("FitDeviceUsed expects global messages of " + 22 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSpeed() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDistance() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCadence() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getElevation() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHeartRate() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPower() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(22);
|
||||
}
|
||||
|
||||
public Builder setSpeed(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDistance(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCadence(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setElevation(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeartRate(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPower(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitDeviceUsed build() {
|
||||
return (FitDeviceUsed) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
@@ -53,6 +53,11 @@ public class FitDiveGas extends RecordData {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMode() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
@@ -81,6 +86,11 @@ public class FitDiveGas extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMode(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
|
||||
+404
@@ -0,0 +1,404 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitDiveSettings extends RecordData {
|
||||
public FitDiveSettings(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 258) {
|
||||
throw new IllegalArgumentException("FitDiveSettings expects global messages of " + 258 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getModel() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGfLow() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGfHigh() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getWaterType() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getWaterDensity() {
|
||||
return (Float) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPo2Warn() {
|
||||
return (Float) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPo2Critical() {
|
||||
return (Float) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPo2Deco() {
|
||||
return (Float) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSafetyStopEnabled() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBottomDepth() {
|
||||
return (Float) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getBottomTime() {
|
||||
return (Long) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getApneaCountdownEnabled() {
|
||||
return (Integer) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getApneaCountdownTime() {
|
||||
return (Long) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBacklightMode() {
|
||||
return (Integer) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBacklightBrightness() {
|
||||
return (Integer) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBacklightTimeout() {
|
||||
return (Integer) getFieldByNumber(16);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getRepeatDiveInterval() {
|
||||
return (Integer) getFieldByNumber(17);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSafetyStopTime() {
|
||||
return (Integer) getFieldByNumber(18);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHeartRateSourceType() {
|
||||
return (Integer) getFieldByNumber(19);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHeartRateSource() {
|
||||
return (Integer) getFieldByNumber(20);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTravelGas() {
|
||||
return (Integer) getFieldByNumber(21);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCcrLowSetpointSwitchMode() {
|
||||
return (Integer) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCcrLowSetpoint() {
|
||||
return (Float) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getCcrLowSetpointDepth() {
|
||||
return (Double) getFieldByNumber(24);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCcrHighSetpointSwitchMode() {
|
||||
return (Integer) getFieldByNumber(25);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCcrHighSetpoint() {
|
||||
return (Float) getFieldByNumber(26);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getCcrHighSetpointDepth() {
|
||||
return (Double) getFieldByNumber(27);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGasConsumptionDisplay() {
|
||||
return (Integer) getFieldByNumber(29);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getUpKeyEnabled() {
|
||||
return (Integer) getFieldByNumber(30);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDiveSounds() {
|
||||
return (Integer) getFieldByNumber(35);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getLastStopMultiple() {
|
||||
return (Float) getFieldByNumber(36);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNoFlyTimeMode() {
|
||||
return (Integer) getFieldByNumber(37);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(258);
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setModel(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGfLow(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGfHigh(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWaterType(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWaterDensity(final Float value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPo2Warn(final Float value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPo2Critical(final Float value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPo2Deco(final Float value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSafetyStopEnabled(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBottomDepth(final Float value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBottomTime(final Long value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setApneaCountdownEnabled(final Integer value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setApneaCountdownTime(final Long value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBacklightMode(final Integer value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBacklightBrightness(final Integer value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBacklightTimeout(final Integer value) {
|
||||
setFieldByNumber(16, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRepeatDiveInterval(final Integer value) {
|
||||
setFieldByNumber(17, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSafetyStopTime(final Integer value) {
|
||||
setFieldByNumber(18, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeartRateSourceType(final Integer value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeartRateSource(final Integer value) {
|
||||
setFieldByNumber(20, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTravelGas(final Integer value) {
|
||||
setFieldByNumber(21, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCcrLowSetpointSwitchMode(final Integer value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCcrLowSetpoint(final Float value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCcrLowSetpointDepth(final Double value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCcrHighSetpointSwitchMode(final Integer value) {
|
||||
setFieldByNumber(25, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCcrHighSetpoint(final Float value) {
|
||||
setFieldByNumber(26, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCcrHighSetpointDepth(final Double value) {
|
||||
setFieldByNumber(27, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGasConsumptionDisplay(final Integer value) {
|
||||
setFieldByNumber(29, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUpKeyEnabled(final Integer value) {
|
||||
setFieldByNumber(30, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDiveSounds(final Integer value) {
|
||||
setFieldByNumber(35, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLastStopMultiple(final Float value) {
|
||||
setFieldByNumber(36, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNoFlyTimeMode(final Integer value) {
|
||||
setFieldByNumber(37, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitDiveSettings build() {
|
||||
return (FitDiveSettings) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+100
@@ -98,6 +98,56 @@ public class FitDiveSummary extends RecordData {
|
||||
return (Double) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgPressureSac() {
|
||||
return (Float) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgVolumeSac() {
|
||||
return (Float) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgRmv() {
|
||||
return (Float) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getDescentTime() {
|
||||
return (Double) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAscentTime() {
|
||||
return (Double) getFieldByNumber(16);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAvgAscentRate() {
|
||||
return (Double) getFieldByNumber(17);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAvgDescentRate() {
|
||||
return (Double) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getMaxAscentRate() {
|
||||
return (Double) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getMaxDescentRate() {
|
||||
return (Double) getFieldByNumber(24);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getHangTime() {
|
||||
return (Double) getFieldByNumber(25);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
@@ -171,6 +221,56 @@ public class FitDiveSummary extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgPressureSac(final Float value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgVolumeSac(final Float value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgRmv(final Float value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDescentTime(final Double value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAscentTime(final Double value) {
|
||||
setFieldByNumber(16, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgAscentRate(final Double value) {
|
||||
setFieldByNumber(17, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgDescentRate(final Double value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxAscentRate(final Double value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxDescentRate(final Double value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHangTime(final Double value) {
|
||||
setFieldByNumber(25, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitEpoStatus extends RecordData {
|
||||
public FitEpoStatus(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 141) {
|
||||
throw new IllegalArgumentException("FitEpoStatus expects global messages of " + 141 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStatus() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartTime() {
|
||||
return (Long) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEndTime() {
|
||||
return (Long) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(141);
|
||||
}
|
||||
|
||||
public Builder setStatus(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartTime(final Long value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndTime(final Long value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitEpoStatus build() {
|
||||
return (FitEpoStatus) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
@@ -48,6 +48,11 @@ public class FitEvent extends RecordData {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getData16() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getData() {
|
||||
return (Long) getFieldByNumber(3);
|
||||
@@ -81,6 +86,11 @@ public class FitEvent extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setData16(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setData(final Long value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitExerciseTitle extends RecordData {
|
||||
public FitExerciseTitle(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 264) {
|
||||
throw new IllegalArgumentException("FitExerciseTitle expects global messages of " + 264 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getExerciseCategory() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getExerciseName() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getWktStepName() {
|
||||
return (String) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(264);
|
||||
}
|
||||
|
||||
public Builder setExerciseCategory(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setExerciseName(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWktStepName(final String value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitExerciseTitle build() {
|
||||
return (FitExerciseTitle) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+90
@@ -58,11 +58,56 @@ public class FitFieldDescription extends RecordData {
|
||||
return (String) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getArray() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getComponents() {
|
||||
return (String) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getScale() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getOffset() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getUnits() {
|
||||
return (String) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getBits() {
|
||||
return (String) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getAccumulate() {
|
||||
return (String) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getFitBaseUnitId() {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNativeMesgNum() {
|
||||
return (Integer) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNativeFieldNum() {
|
||||
return (Integer) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -91,11 +136,56 @@ public class FitFieldDescription extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setArray(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setComponents(final String value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setScale(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOffset(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUnits(final String value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBits(final String value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAccumulate(final String value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFitBaseUnitId(final Integer value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNativeMesgNum(final Integer value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNativeFieldNum(final Integer value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitFieldDescription build() {
|
||||
return (FitFieldDescription) super.build();
|
||||
|
||||
+90
@@ -40,16 +40,61 @@ public class FitGoals extends RecordData {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSport() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSubSport() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartDate() {
|
||||
return (Long) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEndDate() {
|
||||
return (Long) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Type getType() {
|
||||
return (Type) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getValue() {
|
||||
return (Long) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getRepeat() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTargetValue() {
|
||||
return (Long) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getRecurrence() {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getRecurrenceValue() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEnabled() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Source getSource() {
|
||||
return (Source) getFieldByNumber(11);
|
||||
@@ -63,16 +108,61 @@ public class FitGoals extends RecordData {
|
||||
super(15);
|
||||
}
|
||||
|
||||
public Builder setSport(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSubSport(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartDate(final Long value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndDate(final Long value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setType(final Type value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setValue(final Long value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRepeat(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTargetValue(final Long value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRecurrence(final Integer value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRecurrenceValue(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnabled(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSource(final Source value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitGpsEvent extends RecordData {
|
||||
public FitGpsEvent(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 326) {
|
||||
throw new IllegalArgumentException("FitGpsEvent expects global messages of " + 326 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEventType() {
|
||||
return (Long) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getData() {
|
||||
return (Long) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(326);
|
||||
}
|
||||
|
||||
public Builder setEventType(final Long value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setData(final Long value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitGpsEvent build() {
|
||||
return (FitGpsEvent) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHr extends RecordData {
|
||||
public FitHr(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 132) {
|
||||
throw new IllegalArgumentException("FitHr expects global messages of " + 132 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getFractionalTimestamp() {
|
||||
return (Float) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTime256() {
|
||||
return (Float) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getFilteredBpm() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(6);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getEventTimestamp() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(9);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getEventTimestamp12() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(10);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(132);
|
||||
}
|
||||
|
||||
public Builder setFractionalTimestamp(final Float value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTime256(final Float value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFilteredBpm(final Number[] value) {
|
||||
setFieldByNumber(6, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEventTimestamp(final Number[] value) {
|
||||
setFieldByNumber(9, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEventTimestamp12(final Number[] value) {
|
||||
setFieldByNumber(10, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHr build() {
|
||||
return (FitHr) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHrZone extends RecordData {
|
||||
public FitHrZone(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 8) {
|
||||
throw new IllegalArgumentException("FitHrZone expects global messages of " + 8 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHighBpm() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(8);
|
||||
}
|
||||
|
||||
public Builder setHighBpm(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHrZone build() {
|
||||
return (FitHrZone) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHrmProfile extends RecordData {
|
||||
public FitHrmProfile(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 4) {
|
||||
throw new IllegalArgumentException("FitHrmProfile expects global messages of " + 4 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEnabled() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHrmAntId() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLogHrv() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHrmAntIdTransType() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(4);
|
||||
}
|
||||
|
||||
public Builder setEnabled(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHrmAntId(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLogHrv(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHrmAntIdTransType(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHrmProfile build() {
|
||||
return (FitHrmProfile) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHrv extends RecordData {
|
||||
public FitHrv(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 78) {
|
||||
throw new IllegalArgumentException("FitHrv expects global messages of " + 78 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getTime() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(0);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(78);
|
||||
}
|
||||
|
||||
public Builder setTime(final Number[] value) {
|
||||
setFieldByNumber(0, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHrv build() {
|
||||
return (FitHrv) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaBodyBatteryData extends RecordData {
|
||||
public FitHsaBodyBatteryData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 314) {
|
||||
throw new IllegalArgumentException("FitHsaBodyBatteryData expects global messages of " + 314 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProcessingInterval() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getLevel() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getCharged() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(2);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getUncharged() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(3);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(314);
|
||||
}
|
||||
|
||||
public Builder setProcessingInterval(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLevel(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCharged(final Number[] value) {
|
||||
setFieldByNumber(2, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUncharged(final Number[] value) {
|
||||
setFieldByNumber(3, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaBodyBatteryData build() {
|
||||
return (FitHsaBodyBatteryData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaConfigurationData extends RecordData {
|
||||
public FitHsaConfigurationData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 389) {
|
||||
throw new IllegalArgumentException("FitHsaConfigurationData expects global messages of " + 389 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getData() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(0);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDataSize() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(389);
|
||||
}
|
||||
|
||||
public Builder setData(final Number[] value) {
|
||||
setFieldByNumber(0, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDataSize(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaConfigurationData build() {
|
||||
return (FitHsaConfigurationData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaEvent extends RecordData {
|
||||
public FitHsaEvent(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 315) {
|
||||
throw new IllegalArgumentException("FitHsaEvent expects global messages of " + 315 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEventId() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(315);
|
||||
}
|
||||
|
||||
public Builder setEventId(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaEvent build() {
|
||||
return (FitHsaEvent) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaHeartRateData extends RecordData {
|
||||
public FitHsaHeartRateData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 308) {
|
||||
throw new IllegalArgumentException("FitHsaHeartRateData expects global messages of " + 308 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProcessingInterval() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStatus() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getHeartRate() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(2);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(308);
|
||||
}
|
||||
|
||||
public Builder setProcessingInterval(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStatus(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeartRate(final Number[] value) {
|
||||
setFieldByNumber(2, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaHeartRateData build() {
|
||||
return (FitHsaHeartRateData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaRespirationData extends RecordData {
|
||||
public FitHsaRespirationData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 307) {
|
||||
throw new IllegalArgumentException("FitHsaRespirationData expects global messages of " + 307 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProcessingInterval() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getRespirationRate() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(307);
|
||||
}
|
||||
|
||||
public Builder setProcessingInterval(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRespirationRate(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaRespirationData build() {
|
||||
return (FitHsaRespirationData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaSpo2Data extends RecordData {
|
||||
public FitHsaSpo2Data(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 305) {
|
||||
throw new IllegalArgumentException("FitHsaSpo2Data expects global messages of " + 305 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProcessingInterval() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getReadingSpo2() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getConfidence() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(2);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(305);
|
||||
}
|
||||
|
||||
public Builder setProcessingInterval(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setReadingSpo2(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setConfidence(final Number[] value) {
|
||||
setFieldByNumber(2, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaSpo2Data build() {
|
||||
return (FitHsaSpo2Data) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaStepData extends RecordData {
|
||||
public FitHsaStepData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 304) {
|
||||
throw new IllegalArgumentException("FitHsaStepData expects global messages of " + 304 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProcessingInterval() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getSteps() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(304);
|
||||
}
|
||||
|
||||
public Builder setProcessingInterval(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSteps(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaStepData build() {
|
||||
return (FitHsaStepData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaStressData extends RecordData {
|
||||
public FitHsaStressData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 306) {
|
||||
throw new IllegalArgumentException("FitHsaStressData expects global messages of " + 306 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProcessingInterval() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getStressLevel() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(306);
|
||||
}
|
||||
|
||||
public Builder setProcessingInterval(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStressLevel(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaStressData build() {
|
||||
return (FitHsaStressData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitHsaWristTemperatureData extends RecordData {
|
||||
public FitHsaWristTemperatureData(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 409) {
|
||||
throw new IllegalArgumentException("FitHsaWristTemperatureData expects global messages of " + 409 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProcessingInterval() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getValue() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(1);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(409);
|
||||
}
|
||||
|
||||
public Builder setProcessingInterval(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setValue(final Number[] value) {
|
||||
setFieldByNumber(1, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitHsaWristTemperatureData build() {
|
||||
return (FitHsaWristTemperatureData) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+412
-2
@@ -95,10 +95,25 @@ public class FitLap extends RecordData {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalCalores() {
|
||||
public Integer getTotalCalories() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalFatCalories() {
|
||||
return (Integer) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgSpeed() {
|
||||
return (Float) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxSpeed() {
|
||||
return (Float) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgHeartRate() {
|
||||
return (Integer) getFieldByNumber(15);
|
||||
@@ -114,6 +129,21 @@ public class FitLap extends RecordData {
|
||||
return (Integer) getFieldByNumber(17);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxCadence() {
|
||||
return (Integer) getFieldByNumber(18);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgPower() {
|
||||
return (Integer) getFieldByNumber(19);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxPower() {
|
||||
return (Integer) getFieldByNumber(20);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalAscent() {
|
||||
return (Integer) getFieldByNumber(21);
|
||||
@@ -124,6 +154,11 @@ public class FitLap extends RecordData {
|
||||
return (Integer) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getIntensity() {
|
||||
return (Integer) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLapTrigger() {
|
||||
return (Integer) getFieldByNumber(24);
|
||||
@@ -134,11 +169,26 @@ public class FitLap extends RecordData {
|
||||
return (Integer) getFieldByNumber(25);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEventGroup() {
|
||||
return (Integer) getFieldByNumber(26);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNumLengths() {
|
||||
return (Integer) getFieldByNumber(32);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNormalizedPower() {
|
||||
return (Integer) getFieldByNumber(33);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLeftRightBalance() {
|
||||
return (Integer) getFieldByNumber(34);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getFirstLengthIndex() {
|
||||
return (Integer) getFieldByNumber(35);
|
||||
@@ -164,11 +214,161 @@ public class FitLap extends RecordData {
|
||||
return (Integer) getFieldByNumber(40);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTotalWork() {
|
||||
return (Long) getFieldByNumber(41);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgAltitude() {
|
||||
return (Float) getFieldByNumber(42);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxAltitude() {
|
||||
return (Float) getFieldByNumber(43);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGpsAccuracy() {
|
||||
return (Integer) getFieldByNumber(44);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgGrade() {
|
||||
return (Float) getFieldByNumber(45);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgPosGrade() {
|
||||
return (Float) getFieldByNumber(46);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgNegGrade() {
|
||||
return (Float) getFieldByNumber(47);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxPosGrade() {
|
||||
return (Float) getFieldByNumber(48);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxNegGrade() {
|
||||
return (Float) getFieldByNumber(49);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgTemperature() {
|
||||
return (Integer) getFieldByNumber(50);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxTemperature() {
|
||||
return (Integer) getFieldByNumber(51);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalMovingTime() {
|
||||
return (Double) getFieldByNumber(52);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgPosVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(53);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgNegVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(54);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxPosVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(55);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxNegVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(56);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInHrZone() {
|
||||
return (Double) getFieldByNumber(57);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getWktStepIndex() {
|
||||
return (Integer) getFieldByNumber(71);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgSwolf() {
|
||||
return (Integer) getFieldByNumber(73);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgFractionalCadence() {
|
||||
return (Float) getFieldByNumber(80);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxFractionalCadence() {
|
||||
return (Float) getFieldByNumber(81);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgLeftPco() {
|
||||
return (Integer) getFieldByNumber(100);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgRightPco() {
|
||||
return (Integer) getFieldByNumber(101);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgLeftPowerPhase() {
|
||||
return (Integer) getFieldByNumber(102);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgLeftPowerPhasePeak() {
|
||||
return (Integer) getFieldByNumber(103);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgRightPowerPhase() {
|
||||
return (Integer) getFieldByNumber(104);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgRightPowerPhasePeak() {
|
||||
return (Integer) getFieldByNumber(105);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgPowerPosition() {
|
||||
return (Integer) getFieldByNumber(106);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxPowerPosition() {
|
||||
return (Integer) getFieldByNumber(107);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgCadencePosition() {
|
||||
return (Integer) getFieldByNumber(108);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxCadencePosition() {
|
||||
return (Integer) getFieldByNumber(109);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getEnhancedAvgSpeed() {
|
||||
return (Double) getFieldByNumber(110);
|
||||
@@ -184,6 +384,11 @@ public class FitLap extends RecordData {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -247,11 +452,26 @@ public class FitLap extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalCalores(final Integer value) {
|
||||
public Builder setTotalCalories(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalFatCalories(final Integer value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSpeed(final Float value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxSpeed(final Float value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgHeartRate(final Integer value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
@@ -267,6 +487,21 @@ public class FitLap extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxCadence(final Integer value) {
|
||||
setFieldByNumber(18, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgPower(final Integer value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxPower(final Integer value) {
|
||||
setFieldByNumber(20, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalAscent(final Integer value) {
|
||||
setFieldByNumber(21, value);
|
||||
return this;
|
||||
@@ -277,6 +512,11 @@ public class FitLap extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setIntensity(final Integer value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLapTrigger(final Integer value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
@@ -287,11 +527,26 @@ public class FitLap extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEventGroup(final Integer value) {
|
||||
setFieldByNumber(26, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNumLengths(final Integer value) {
|
||||
setFieldByNumber(32, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNormalizedPower(final Integer value) {
|
||||
setFieldByNumber(33, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLeftRightBalance(final Integer value) {
|
||||
setFieldByNumber(34, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFirstLengthIndex(final Integer value) {
|
||||
setFieldByNumber(35, value);
|
||||
return this;
|
||||
@@ -317,11 +572,161 @@ public class FitLap extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalWork(final Long value) {
|
||||
setFieldByNumber(41, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgAltitude(final Float value) {
|
||||
setFieldByNumber(42, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxAltitude(final Float value) {
|
||||
setFieldByNumber(43, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGpsAccuracy(final Integer value) {
|
||||
setFieldByNumber(44, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgGrade(final Float value) {
|
||||
setFieldByNumber(45, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgPosGrade(final Float value) {
|
||||
setFieldByNumber(46, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgNegGrade(final Float value) {
|
||||
setFieldByNumber(47, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxPosGrade(final Float value) {
|
||||
setFieldByNumber(48, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxNegGrade(final Float value) {
|
||||
setFieldByNumber(49, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgTemperature(final Integer value) {
|
||||
setFieldByNumber(50, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxTemperature(final Integer value) {
|
||||
setFieldByNumber(51, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalMovingTime(final Double value) {
|
||||
setFieldByNumber(52, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgPosVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(53, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgNegVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(54, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxPosVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(55, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxNegVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(56, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInHrZone(final Double value) {
|
||||
setFieldByNumber(57, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWktStepIndex(final Integer value) {
|
||||
setFieldByNumber(71, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSwolf(final Integer value) {
|
||||
setFieldByNumber(73, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgFractionalCadence(final Float value) {
|
||||
setFieldByNumber(80, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxFractionalCadence(final Float value) {
|
||||
setFieldByNumber(81, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgLeftPco(final Integer value) {
|
||||
setFieldByNumber(100, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgRightPco(final Integer value) {
|
||||
setFieldByNumber(101, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgLeftPowerPhase(final Integer value) {
|
||||
setFieldByNumber(102, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgLeftPowerPhasePeak(final Integer value) {
|
||||
setFieldByNumber(103, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgRightPowerPhase(final Integer value) {
|
||||
setFieldByNumber(104, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgRightPowerPhasePeak(final Integer value) {
|
||||
setFieldByNumber(105, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgPowerPosition(final Integer value) {
|
||||
setFieldByNumber(106, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxPowerPosition(final Integer value) {
|
||||
setFieldByNumber(107, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgCadencePosition(final Integer value) {
|
||||
setFieldByNumber(108, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxCadencePosition(final Integer value) {
|
||||
setFieldByNumber(109, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnhancedAvgSpeed(final Double value) {
|
||||
setFieldByNumber(110, value);
|
||||
return this;
|
||||
@@ -337,6 +742,11 @@ public class FitLap extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitLap build() {
|
||||
return (FitLap) super.build();
|
||||
|
||||
+288
@@ -0,0 +1,288 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitLength extends RecordData {
|
||||
public FitLength(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 101) {
|
||||
throw new IllegalArgumentException("FitLength expects global messages of " + 101 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEvent() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEventType() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartTime() {
|
||||
return (Long) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalElapsedTime() {
|
||||
return (Double) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalTimerTime() {
|
||||
return (Double) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalStrokes() {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgSpeed() {
|
||||
return (Float) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSwimStroke() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgSwimmingCadence() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEventGroup() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalCalories() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLengthType() {
|
||||
return (Integer) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPlayerScore() {
|
||||
return (Integer) getFieldByNumber(18);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getOpponentScore() {
|
||||
return (Integer) getFieldByNumber(19);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getStrokeCount() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(20);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getZoneCount() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(21);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getEnhancedAvgRespirationRate() {
|
||||
return (Float) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getEnhancedMaxRespirationRate() {
|
||||
return (Float) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgRespirationRate() {
|
||||
return (Integer) getFieldByNumber(24);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxRespirationRate() {
|
||||
return (Integer) getFieldByNumber(25);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(101);
|
||||
}
|
||||
|
||||
public Builder setEvent(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEventType(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartTime(final Long value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalElapsedTime(final Double value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalTimerTime(final Double value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalStrokes(final Integer value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSpeed(final Float value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSwimStroke(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSwimmingCadence(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEventGroup(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalCalories(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLengthType(final Integer value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPlayerScore(final Integer value) {
|
||||
setFieldByNumber(18, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOpponentScore(final Integer value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStrokeCount(final Number[] value) {
|
||||
setFieldByNumber(20, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setZoneCount(final Number[] value) {
|
||||
setFieldByNumber(21, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnhancedAvgRespirationRate(final Float value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnhancedMaxRespirationRate(final Float value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgRespirationRate(final Integer value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxRespirationRate(final Integer value) {
|
||||
setFieldByNumber(25, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitLength build() {
|
||||
return (FitLength) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+20
@@ -68,6 +68,16 @@ public class FitMaxMetData extends RecordData {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHrSource() {
|
||||
return (Integer) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSpeedSource() {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -106,6 +116,16 @@ public class FitMaxMetData extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHrSource(final Integer value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSpeedSource(final Integer value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitMaxMetData build() {
|
||||
return (FitMaxMetData) super.build();
|
||||
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitMetZone extends RecordData {
|
||||
public FitMetZone(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 10) {
|
||||
throw new IllegalArgumentException("FitMetZone expects global messages of " + 10 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHighBpm() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCalories() {
|
||||
return (Float) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getFatCalories() {
|
||||
return (Float) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(10);
|
||||
}
|
||||
|
||||
public Builder setHighBpm(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCalories(final Float value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFatCalories(final Float value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitMetZone build() {
|
||||
return (FitMetZone) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+170
@@ -41,6 +41,16 @@ public class FitMonitoring extends RecordData {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDeviceIndex() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCalories() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getDistance() {
|
||||
return (Long) getFieldByNumber(2);
|
||||
@@ -61,6 +71,56 @@ public class FitMonitoring extends RecordData {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getActivitySubtype() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getActivityLevel() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDistance16() {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCycles16() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getActiveTime16() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLocalTimestamp() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTemperature() {
|
||||
return (Float) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTemperatureMin() {
|
||||
return (Float) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTemperatureMax() {
|
||||
return (Float) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getActivityTime() {
|
||||
return (Integer) getFieldByNumber(16);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getActiveCalories() {
|
||||
return (Integer) getFieldByNumber(19);
|
||||
@@ -81,11 +141,36 @@ public class FitMonitoring extends RecordData {
|
||||
return (Integer) getFieldByNumber(26);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTimestampMin8() {
|
||||
return (Integer) getFieldByNumber(25);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHeartRate() {
|
||||
return (Integer) getFieldByNumber(27);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getIntensity() {
|
||||
return (Float) getFieldByNumber(28);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getDuration() {
|
||||
return (Long) getFieldByNumber(30);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAscent() {
|
||||
return (Double) getFieldByNumber(31);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getDescent() {
|
||||
return (Double) getFieldByNumber(32);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getModerateActivityMinutes() {
|
||||
return (Integer) getFieldByNumber(33);
|
||||
@@ -109,6 +194,16 @@ public class FitMonitoring extends RecordData {
|
||||
super(55);
|
||||
}
|
||||
|
||||
public Builder setDeviceIndex(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCalories(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDistance(final Long value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
@@ -129,6 +224,56 @@ public class FitMonitoring extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActivitySubtype(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActivityLevel(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDistance16(final Integer value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCycles16(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActiveTime16(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLocalTimestamp(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTemperature(final Float value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTemperatureMin(final Float value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTemperatureMax(final Float value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActivityTime(final Integer value) {
|
||||
setFieldByNumber(16, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActiveCalories(final Integer value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
@@ -149,11 +294,36 @@ public class FitMonitoring extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestampMin8(final Integer value) {
|
||||
setFieldByNumber(25, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeartRate(final Integer value) {
|
||||
setFieldByNumber(27, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setIntensity(final Float value) {
|
||||
setFieldByNumber(28, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDuration(final Long value) {
|
||||
setFieldByNumber(30, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAscent(final Double value) {
|
||||
setFieldByNumber(31, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDescent(final Double value) {
|
||||
setFieldByNumber(32, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setModerateActivityMinutes(final Integer value) {
|
||||
setFieldByNumber(33, value);
|
||||
return this;
|
||||
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitOhrSettings extends RecordData {
|
||||
public FitOhrSettings(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 188) {
|
||||
throw new IllegalArgumentException("FitOhrSettings expects global messages of " + 188 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEnabled() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(188);
|
||||
}
|
||||
|
||||
public Builder setEnabled(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitOhrSettings build() {
|
||||
return (FitOhrSettings) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitPad extends RecordData {
|
||||
public FitPad(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 105) {
|
||||
throw new IllegalArgumentException("FitPad expects global messages of " + 105 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(105);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitPad build() {
|
||||
return (FitPad) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitPowerZone extends RecordData {
|
||||
public FitPowerZone(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 9) {
|
||||
throw new IllegalArgumentException("FitPowerZone expects global messages of " + 9 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHighValue() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(9);
|
||||
}
|
||||
|
||||
public Builder setHighValue(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitPowerZone build() {
|
||||
return (FitPowerZone) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+357
@@ -82,31 +82,138 @@ public class FitRecord extends RecordData {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCompressedSpeedDistance() {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getGrade() {
|
||||
return (Float) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getResistance() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeFromCourse() {
|
||||
return (Double) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCycleLength() {
|
||||
return (Float) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTemperature() {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Number[] getSpeed1s() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(17);
|
||||
if (objectsArray == null)
|
||||
return null;
|
||||
final Number[] ret = new Number[objectsArray.length];
|
||||
for (int i = 0; i < objectsArray.length; i++) {
|
||||
ret[i] = (Number) objectsArray[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCycles() {
|
||||
return (Integer) getFieldByNumber(18);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTotalCycles() {
|
||||
return (Long) getFieldByNumber(19);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCompressedAccumulatedPower() {
|
||||
return (Integer) getFieldByNumber(28);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getAccumulatedPower() {
|
||||
return (Long) getFieldByNumber(29);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLeftRightBalance() {
|
||||
return (Integer) getFieldByNumber(30);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGpsAccuracy() {
|
||||
return (Integer) getFieldByNumber(31);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(32);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCalories() {
|
||||
return (Integer) getFieldByNumber(33);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getOscillation() {
|
||||
return (Float) getFieldByNumber(39);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getStanceTimePercent() {
|
||||
return (Float) getFieldByNumber(40);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getStanceTime() {
|
||||
return (Float) getFieldByNumber(41);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getActivity() {
|
||||
return (Integer) getFieldByNumber(42);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStrokeType() {
|
||||
return (Integer) getFieldByNumber(49);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getZone() {
|
||||
return (Integer) getFieldByNumber(50);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBallSpeed() {
|
||||
return (Float) getFieldByNumber(51);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCadence256() {
|
||||
return (Float) getFieldByNumber(52);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getFractionalCadence() {
|
||||
return (Float) getFieldByNumber(53);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDeviceIndex() {
|
||||
return (Integer) getFieldByNumber(62);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getEnhancedSpeed() {
|
||||
return (Double) getFieldByNumber(73);
|
||||
@@ -117,16 +224,36 @@ public class FitRecord extends RecordData {
|
||||
return (Double) getFieldByNumber(78);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBatterySoc() {
|
||||
return (Float) getFieldByNumber(81);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMotorPower() {
|
||||
return (Integer) getFieldByNumber(82);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getVerticalRatio() {
|
||||
return (Float) getFieldByNumber(83);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getStanceTimeBalance() {
|
||||
return (Float) getFieldByNumber(84);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getStepLength() {
|
||||
return (Float) getFieldByNumber(85);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCycleLength16() {
|
||||
return (Float) getFieldByNumber(87);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getAbsolutePressure() {
|
||||
return (Long) getFieldByNumber(91);
|
||||
@@ -167,16 +294,71 @@ public class FitRecord extends RecordData {
|
||||
return (Integer) getFieldByNumber(98);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getRespirationRate() {
|
||||
return (Integer) getFieldByNumber(99);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEnhancedRespirationRate() {
|
||||
return (Integer) getFieldByNumber(108);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getGrit() {
|
||||
return (Float) getFieldByNumber(114);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getFlow() {
|
||||
return (Float) getFieldByNumber(115);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCurrentStress() {
|
||||
return (Float) getFieldByNumber(116);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getAirTimeRemaining() {
|
||||
return (Long) getFieldByNumber(123);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPressureSac() {
|
||||
return (Float) getFieldByNumber(124);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getVolumeSac() {
|
||||
return (Float) getFieldByNumber(125);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getRmv() {
|
||||
return (Float) getFieldByNumber(126);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAscentRate() {
|
||||
return (Double) getFieldByNumber(127);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPo2() {
|
||||
return (Float) getFieldByNumber(129);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getWristHeartRate() {
|
||||
return (Integer) getFieldByNumber(136);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getCoreTemperature() {
|
||||
return (Float) getFieldByNumber(139);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBodyBattery() {
|
||||
return (Integer) getFieldByNumber(143);
|
||||
@@ -235,31 +417,131 @@ public class FitRecord extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCompressedSpeedDistance(final Integer value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGrade(final Float value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setResistance(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeFromCourse(final Double value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCycleLength(final Float value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTemperature(final Integer value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSpeed1s(final Number[] value) {
|
||||
setFieldByNumber(17, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCycles(final Integer value) {
|
||||
setFieldByNumber(18, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalCycles(final Long value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCompressedAccumulatedPower(final Integer value) {
|
||||
setFieldByNumber(28, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAccumulatedPower(final Long value) {
|
||||
setFieldByNumber(29, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLeftRightBalance(final Integer value) {
|
||||
setFieldByNumber(30, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGpsAccuracy(final Integer value) {
|
||||
setFieldByNumber(31, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(32, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCalories(final Integer value) {
|
||||
setFieldByNumber(33, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOscillation(final Float value) {
|
||||
setFieldByNumber(39, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStanceTimePercent(final Float value) {
|
||||
setFieldByNumber(40, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStanceTime(final Float value) {
|
||||
setFieldByNumber(41, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActivity(final Integer value) {
|
||||
setFieldByNumber(42, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStrokeType(final Integer value) {
|
||||
setFieldByNumber(49, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setZone(final Integer value) {
|
||||
setFieldByNumber(50, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBallSpeed(final Float value) {
|
||||
setFieldByNumber(51, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCadence256(final Float value) {
|
||||
setFieldByNumber(52, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFractionalCadence(final Float value) {
|
||||
setFieldByNumber(53, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDeviceIndex(final Integer value) {
|
||||
setFieldByNumber(62, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnhancedSpeed(final Double value) {
|
||||
setFieldByNumber(73, value);
|
||||
return this;
|
||||
@@ -270,16 +552,36 @@ public class FitRecord extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBatterySoc(final Float value) {
|
||||
setFieldByNumber(81, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMotorPower(final Integer value) {
|
||||
setFieldByNumber(82, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setVerticalRatio(final Float value) {
|
||||
setFieldByNumber(83, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStanceTimeBalance(final Float value) {
|
||||
setFieldByNumber(84, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStepLength(final Float value) {
|
||||
setFieldByNumber(85, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCycleLength16(final Float value) {
|
||||
setFieldByNumber(87, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAbsolutePressure(final Long value) {
|
||||
setFieldByNumber(91, value);
|
||||
return this;
|
||||
@@ -320,16 +622,71 @@ public class FitRecord extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRespirationRate(final Integer value) {
|
||||
setFieldByNumber(99, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnhancedRespirationRate(final Integer value) {
|
||||
setFieldByNumber(108, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGrit(final Float value) {
|
||||
setFieldByNumber(114, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFlow(final Float value) {
|
||||
setFieldByNumber(115, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCurrentStress(final Float value) {
|
||||
setFieldByNumber(116, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAirTimeRemaining(final Long value) {
|
||||
setFieldByNumber(123, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPressureSac(final Float value) {
|
||||
setFieldByNumber(124, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setVolumeSac(final Float value) {
|
||||
setFieldByNumber(125, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRmv(final Float value) {
|
||||
setFieldByNumber(126, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAscentRate(final Double value) {
|
||||
setFieldByNumber(127, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPo2(final Float value) {
|
||||
setFieldByNumber(129, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWristHeartRate(final Integer value) {
|
||||
setFieldByNumber(136, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCoreTemperature(final Float value) {
|
||||
setFieldByNumber(139, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBodyBattery(final Integer value) {
|
||||
setFieldByNumber(143, value);
|
||||
return this;
|
||||
|
||||
+48
@@ -16,52 +16,100 @@ public class FitRecordDataFactory {
|
||||
public static RecordData create(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
return switch (recordDefinition.getGlobalFITMessage().getNumber()) {
|
||||
case 0 -> new FitFileId(recordDefinition, recordHeader);
|
||||
case 1 -> new FitCapabilities(recordDefinition, recordHeader);
|
||||
case 2 -> new FitDeviceSettings(recordDefinition, recordHeader);
|
||||
case 3 -> new FitUserProfile(recordDefinition, recordHeader);
|
||||
case 4 -> new FitHrmProfile(recordDefinition, recordHeader);
|
||||
case 5 -> new FitSdmProfile(recordDefinition, recordHeader);
|
||||
case 6 -> new FitBikeProfile(recordDefinition, recordHeader);
|
||||
case 7 -> new FitZonesTarget(recordDefinition, recordHeader);
|
||||
case 8 -> new FitHrZone(recordDefinition, recordHeader);
|
||||
case 9 -> new FitPowerZone(recordDefinition, recordHeader);
|
||||
case 10 -> new FitMetZone(recordDefinition, recordHeader);
|
||||
case 12 -> new FitSport(recordDefinition, recordHeader);
|
||||
case 13 -> new FitTrainingSettings(recordDefinition, recordHeader);
|
||||
case 15 -> new FitGoals(recordDefinition, recordHeader);
|
||||
case 18 -> new FitSession(recordDefinition, recordHeader);
|
||||
case 19 -> new FitLap(recordDefinition, recordHeader);
|
||||
case 20 -> new FitRecord(recordDefinition, recordHeader);
|
||||
case 21 -> new FitEvent(recordDefinition, recordHeader);
|
||||
case 22 -> new FitDeviceUsed(recordDefinition, recordHeader);
|
||||
case 23 -> new FitDeviceInfo(recordDefinition, recordHeader);
|
||||
case 26 -> new FitWorkout(recordDefinition, recordHeader);
|
||||
case 27 -> new FitWorkoutStep(recordDefinition, recordHeader);
|
||||
case 30 -> new FitWeightScale(recordDefinition, recordHeader);
|
||||
case 31 -> new FitCourse(recordDefinition, recordHeader);
|
||||
case 33 -> new FitTotals(recordDefinition, recordHeader);
|
||||
case 34 -> new FitActivity(recordDefinition, recordHeader);
|
||||
case 35 -> new FitSoftware(recordDefinition, recordHeader);
|
||||
case 49 -> new FitFileCreator(recordDefinition, recordHeader);
|
||||
case 51 -> new FitBloodPressure(recordDefinition, recordHeader);
|
||||
case 53 -> new FitSpeedZone(recordDefinition, recordHeader);
|
||||
case 55 -> new FitMonitoring(recordDefinition, recordHeader);
|
||||
case 72 -> new FitTrainingFile(recordDefinition, recordHeader);
|
||||
case 78 -> new FitHrv(recordDefinition, recordHeader);
|
||||
case 79 -> new FitUserMetrics(recordDefinition, recordHeader);
|
||||
case 101 -> new FitLength(recordDefinition, recordHeader);
|
||||
case 103 -> new FitMonitoringInfo(recordDefinition, recordHeader);
|
||||
case 104 -> new FitDeviceStatus(recordDefinition, recordHeader);
|
||||
case 105 -> new FitPad(recordDefinition, recordHeader);
|
||||
case 106 -> new FitSlaveDevice(recordDefinition, recordHeader);
|
||||
case 127 -> new FitConnectivity(recordDefinition, recordHeader);
|
||||
case 128 -> new FitWeather(recordDefinition, recordHeader);
|
||||
case 131 -> new FitCadenceZone(recordDefinition, recordHeader);
|
||||
case 132 -> new FitHr(recordDefinition, recordHeader);
|
||||
case 140 -> new FitPhysiologicalMetrics(recordDefinition, recordHeader);
|
||||
case 141 -> new FitEpoStatus(recordDefinition, recordHeader);
|
||||
case 147 -> new FitSensorSettings(recordDefinition, recordHeader);
|
||||
case 151 -> new FitSegmentFile(recordDefinition, recordHeader);
|
||||
case 158 -> new FitWorkoutSession(recordDefinition, recordHeader);
|
||||
case 159 -> new FitWatchfaceSettings(recordDefinition, recordHeader);
|
||||
case 160 -> new FitGpsMetadata(recordDefinition, recordHeader);
|
||||
case 162 -> new FitTimestampCorrelation(recordDefinition, recordHeader);
|
||||
case 188 -> new FitOhrSettings(recordDefinition, recordHeader);
|
||||
case 206 -> new FitFieldDescription(recordDefinition, recordHeader);
|
||||
case 207 -> new FitDeveloperData(recordDefinition, recordHeader);
|
||||
case 209 -> new FitBarometerData(recordDefinition, recordHeader);
|
||||
case 211 -> new FitMonitoringHrData(recordDefinition, recordHeader);
|
||||
case 216 -> new FitTimeInZone(recordDefinition, recordHeader);
|
||||
case 222 -> new FitAlarmSettings(recordDefinition, recordHeader);
|
||||
case 225 -> new FitSet(recordDefinition, recordHeader);
|
||||
case 227 -> new FitStressLevel(recordDefinition, recordHeader);
|
||||
case 229 -> new FitMaxMetData(recordDefinition, recordHeader);
|
||||
case 258 -> new FitDiveSettings(recordDefinition, recordHeader);
|
||||
case 259 -> new FitDiveGas(recordDefinition, recordHeader);
|
||||
case 264 -> new FitExerciseTitle(recordDefinition, recordHeader);
|
||||
case 268 -> new FitDiveSummary(recordDefinition, recordHeader);
|
||||
case 269 -> new FitSpo2(recordDefinition, recordHeader);
|
||||
case 273 -> new FitSleepDataInfo(recordDefinition, recordHeader);
|
||||
case 274 -> new FitSleepDataRaw(recordDefinition, recordHeader);
|
||||
case 275 -> new FitSleepStage(recordDefinition, recordHeader);
|
||||
case 290 -> new FitBeatIntervals(recordDefinition, recordHeader);
|
||||
case 297 -> new FitRespirationRate(recordDefinition, recordHeader);
|
||||
case 304 -> new FitHsaStepData(recordDefinition, recordHeader);
|
||||
case 305 -> new FitHsaSpo2Data(recordDefinition, recordHeader);
|
||||
case 306 -> new FitHsaStressData(recordDefinition, recordHeader);
|
||||
case 307 -> new FitHsaRespirationData(recordDefinition, recordHeader);
|
||||
case 308 -> new FitHsaHeartRateData(recordDefinition, recordHeader);
|
||||
case 312 -> new FitSplit(recordDefinition, recordHeader);
|
||||
case 314 -> new FitHsaBodyBatteryData(recordDefinition, recordHeader);
|
||||
case 315 -> new FitHsaEvent(recordDefinition, recordHeader);
|
||||
case 319 -> new FitTankUpdate(recordDefinition, recordHeader);
|
||||
case 323 -> new FitTankSummary(recordDefinition, recordHeader);
|
||||
case 326 -> new FitGpsEvent(recordDefinition, recordHeader);
|
||||
case 336 -> new FitEcgSummary(recordDefinition, recordHeader);
|
||||
case 337 -> new FitEcgRawSample(recordDefinition, recordHeader);
|
||||
case 338 -> new FitEcgSmoothSample(recordDefinition, recordHeader);
|
||||
case 346 -> new FitSleepStats(recordDefinition, recordHeader);
|
||||
case 370 -> new FitHrvSummary(recordDefinition, recordHeader);
|
||||
case 371 -> new FitHrvValue(recordDefinition, recordHeader);
|
||||
case 375 -> new FitDeviceAuxBatteryInfo(recordDefinition, recordHeader);
|
||||
case 378 -> new FitTrainingLoad(recordDefinition, recordHeader);
|
||||
case 389 -> new FitHsaConfigurationData(recordDefinition, recordHeader);
|
||||
case 394 -> new FitCpeStatus(recordDefinition, recordHeader);
|
||||
case 397 -> new FitSkinTempRaw(recordDefinition, recordHeader);
|
||||
case 398 -> new FitSkinTempOvernight(recordDefinition, recordHeader);
|
||||
case 409 -> new FitHsaWristTemperatureData(recordDefinition, recordHeader);
|
||||
case 412 -> new FitNap(recordDefinition, recordHeader);
|
||||
default -> new RecordData(recordDefinition, recordHeader);
|
||||
};
|
||||
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitSdmProfile extends RecordData {
|
||||
public FitSdmProfile(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 5) {
|
||||
throw new IllegalArgumentException("FitSdmProfile expects global messages of " + 5 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEnabled() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSdmAntId() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getSdmCalFactor() {
|
||||
return (Float) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getOdometer() {
|
||||
return (Double) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSpeedSource() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSdmAntIdTransType() {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getOdometerRollover() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(5);
|
||||
}
|
||||
|
||||
public Builder setEnabled(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSdmAntId(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSdmCalFactor(final Float value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOdometer(final Double value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSpeedSource(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSdmAntIdTransType(final Integer value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOdometerRollover(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSdmProfile build() {
|
||||
return (FitSdmProfile) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitSegmentFile extends RecordData {
|
||||
public FitSegmentFile(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 151) {
|
||||
throw new IllegalArgumentException("FitSegmentFile expects global messages of " + 151 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getFileUuid() {
|
||||
return (String) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEnabled() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getUserProfilePrimaryKey() {
|
||||
return (Long) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLeaderType() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getLeaderGroupPrimaryKey() {
|
||||
return (Long) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getLeaderActivityId() {
|
||||
return (Long) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getLeaderActivityIdString() {
|
||||
return (String) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDefaultRaceLeader() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(151);
|
||||
}
|
||||
|
||||
public Builder setFileUuid(final String value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEnabled(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUserProfilePrimaryKey(final Long value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLeaderType(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLeaderGroupPrimaryKey(final Long value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLeaderActivityId(final Long value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLeaderActivityIdString(final String value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDefaultRaceLeader(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSegmentFile build() {
|
||||
return (FitSegmentFile) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitSensorSettings extends RecordData {
|
||||
public FitSensorSettings(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 147) {
|
||||
throw new IllegalArgumentException("FitSensorSettings expects global messages of " + 147 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getAntId() {
|
||||
return (Long) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getUseForSpeed() {
|
||||
return (Integer) getFieldByNumber(45);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getUseForDistance() {
|
||||
return (Integer) getFieldByNumber(46);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getConnectionType() {
|
||||
return (Integer) getFieldByNumber(51);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(147);
|
||||
}
|
||||
|
||||
public Builder setAntId(final Long value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUseForSpeed(final Integer value) {
|
||||
setFieldByNumber(45, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUseForDistance(final Integer value) {
|
||||
setFieldByNumber(46, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setConnectionType(final Integer value) {
|
||||
setFieldByNumber(51, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSensorSettings build() {
|
||||
return (FitSensorSettings) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+660
@@ -98,6 +98,21 @@ public class FitSession extends RecordData {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalFatCalories() {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgSpeed() {
|
||||
return (Float) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxSpeed() {
|
||||
return (Float) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAverageHeartRate() {
|
||||
return (Integer) getFieldByNumber(16);
|
||||
@@ -153,6 +168,11 @@ public class FitSession extends RecordData {
|
||||
return (Integer) getFieldByNumber(26);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEventGroup() {
|
||||
return (Integer) getFieldByNumber(27);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTrigger() {
|
||||
return (Integer) getFieldByNumber(28);
|
||||
@@ -213,6 +233,21 @@ public class FitSession extends RecordData {
|
||||
return (Double) getFieldByNumber(39);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getAvgStrokeCount() {
|
||||
return (Long) getFieldByNumber(41);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgStrokeDistance() {
|
||||
return (Float) getFieldByNumber(42);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSwimStroke() {
|
||||
return (Integer) getFieldByNumber(43);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPoolLength() {
|
||||
return (Float) getFieldByNumber(44);
|
||||
@@ -223,6 +258,11 @@ public class FitSession extends RecordData {
|
||||
return (Integer) getFieldByNumber(45);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPoolLengthUnit() {
|
||||
return (Integer) getFieldByNumber(46);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNumActiveLengths() {
|
||||
return (Integer) getFieldByNumber(47);
|
||||
@@ -233,11 +273,121 @@ public class FitSession extends RecordData {
|
||||
return (Long) getFieldByNumber(48);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAvgAltitude() {
|
||||
return (Double) getFieldByNumber(49);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getMaxAltitude() {
|
||||
return (Double) getFieldByNumber(50);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGpsAccuracy() {
|
||||
return (Integer) getFieldByNumber(51);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgGrade() {
|
||||
return (Float) getFieldByNumber(52);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgPosGrade() {
|
||||
return (Float) getFieldByNumber(53);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgNegGrade() {
|
||||
return (Float) getFieldByNumber(54);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxPosGrade() {
|
||||
return (Float) getFieldByNumber(55);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxNegGrade() {
|
||||
return (Float) getFieldByNumber(56);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgTemperature() {
|
||||
return (Integer) getFieldByNumber(57);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxTemperature() {
|
||||
return (Integer) getFieldByNumber(58);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalMovingTime() {
|
||||
return (Double) getFieldByNumber(59);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgPosVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(60);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgNegVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(61);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxPosVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(62);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxNegVerticalSpeed() {
|
||||
return (Float) getFieldByNumber(63);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMinHeartRate() {
|
||||
return (Integer) getFieldByNumber(64);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInHrZone() {
|
||||
return (Double) getFieldByNumber(65);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInSpeedZone() {
|
||||
return (Double) getFieldByNumber(66);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInCadenceZone() {
|
||||
return (Double) getFieldByNumber(67);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInPowerZone() {
|
||||
return (Double) getFieldByNumber(68);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAvgLapTime() {
|
||||
return (Double) getFieldByNumber(69);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBestLapIndex() {
|
||||
return (Integer) getFieldByNumber(70);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMinAltitude() {
|
||||
return (Float) getFieldByNumber(71);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgSwimCadence() {
|
||||
return (Float) getFieldByNumber(79);
|
||||
@@ -248,6 +398,41 @@ public class FitSession extends RecordData {
|
||||
return (Integer) getFieldByNumber(80);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPlayerScore() {
|
||||
return (Integer) getFieldByNumber(82);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getOpponentScore() {
|
||||
return (Integer) getFieldByNumber(83);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getOpponentName() {
|
||||
return (String) getFieldByNumber(84);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStrokeCount() {
|
||||
return (Integer) getFieldByNumber(85);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getZoneCount() {
|
||||
return (Integer) getFieldByNumber(86);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxBallSpeed() {
|
||||
return (Float) getFieldByNumber(87);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgBallSpeed() {
|
||||
return (Float) getFieldByNumber(88);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgVerticalOscillation() {
|
||||
return (Float) getFieldByNumber(89);
|
||||
@@ -273,6 +458,11 @@ public class FitSession extends RecordData {
|
||||
return (Float) getFieldByNumber(93);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTotalFractionalCycles() {
|
||||
return (Float) getFieldByNumber(94);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgLeftTorqueEffectiveness() {
|
||||
return (Float) getFieldByNumber(101);
|
||||
@@ -293,6 +483,11 @@ public class FitSession extends RecordData {
|
||||
return (Float) getFieldByNumber(104);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgCombinedPedalSmoothness() {
|
||||
return (Float) getFieldByNumber(105);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getFrontShifts() {
|
||||
return (Integer) getFieldByNumber(107);
|
||||
@@ -308,6 +503,11 @@ public class FitSession extends RecordData {
|
||||
return (String) getFieldByNumber(110);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSportIndex() {
|
||||
return (Integer) getFieldByNumber(111);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStandTime() {
|
||||
return (Long) getFieldByNumber(112);
|
||||
@@ -454,6 +654,71 @@ public class FitSession extends RecordData {
|
||||
return (Float) getFieldByNumber(137);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAvgDepth() {
|
||||
return (Double) getFieldByNumber(140);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getMaxDepth() {
|
||||
return (Double) getFieldByNumber(141);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSurfaceInterval() {
|
||||
return (Long) getFieldByNumber(142);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStartCns() {
|
||||
return (Integer) getFieldByNumber(143);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEndCns() {
|
||||
return (Integer) getFieldByNumber(144);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getStartN2() {
|
||||
return (Integer) getFieldByNumber(145);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEndN2() {
|
||||
return (Integer) getFieldByNumber(146);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgRespirationRate() {
|
||||
return (Integer) getFieldByNumber(147);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxRespirationRate() {
|
||||
return (Integer) getFieldByNumber(148);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMinRespirationRate() {
|
||||
return (Integer) getFieldByNumber(149);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMinTemperature() {
|
||||
return (Integer) getFieldByNumber(150);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getO2Toxicity() {
|
||||
return (Integer) getFieldByNumber(155);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getDiveNumber() {
|
||||
return (Long) getFieldByNumber(156);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTrainingLoadPeak() {
|
||||
return (Double) getFieldByNumber(168);
|
||||
@@ -479,11 +744,46 @@ public class FitSession extends RecordData {
|
||||
return (Float) getFieldByNumber(180);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTotalGrit() {
|
||||
return (Float) getFieldByNumber(181);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTotalFlow() {
|
||||
return (Float) getFieldByNumber(182);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getJumpCount() {
|
||||
return (Integer) getFieldByNumber(183);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgGrit() {
|
||||
return (Float) getFieldByNumber(186);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgFlow() {
|
||||
return (Float) getFieldByNumber(187);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPrimaryBenefit() {
|
||||
return (Integer) getFieldByNumber(188);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getWorkoutFeel() {
|
||||
return (Integer) getFieldByNumber(192);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getWorkoutRpe() {
|
||||
return (Integer) getFieldByNumber(193);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAvgSpo2() {
|
||||
return (Integer) getFieldByNumber(194);
|
||||
@@ -509,6 +809,16 @@ public class FitSession extends RecordData {
|
||||
return (Integer) getFieldByNumber(198);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTotalFractionalAscent() {
|
||||
return (Float) getFieldByNumber(199);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTotalFractionalDescent() {
|
||||
return (Float) getFieldByNumber(200);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBeginningPotential() {
|
||||
return (Integer) getFieldByNumber(205);
|
||||
@@ -524,6 +834,21 @@ public class FitSession extends RecordData {
|
||||
return (Integer) getFieldByNumber(207);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getAvgCoreTemperature() {
|
||||
return (Float) getFieldByNumber(208);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMinCoreTemperature() {
|
||||
return (Float) getFieldByNumber(209);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMaxCoreTemperature() {
|
||||
return (Float) getFieldByNumber(210);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getStepSpeedLoss() {
|
||||
return (Float) getFieldByNumber(222);
|
||||
@@ -539,6 +864,11 @@ public class FitSession extends RecordData {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -607,6 +937,21 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalFatCalories(final Integer value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSpeed(final Float value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxSpeed(final Float value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAverageHeartRate(final Integer value) {
|
||||
setFieldByNumber(16, value);
|
||||
return this;
|
||||
@@ -662,6 +1007,11 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEventGroup(final Integer value) {
|
||||
setFieldByNumber(27, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTrigger(final Integer value) {
|
||||
setFieldByNumber(28, value);
|
||||
return this;
|
||||
@@ -722,6 +1072,21 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgStrokeCount(final Long value) {
|
||||
setFieldByNumber(41, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgStrokeDistance(final Float value) {
|
||||
setFieldByNumber(42, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSwimStroke(final Integer value) {
|
||||
setFieldByNumber(43, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPoolLength(final Float value) {
|
||||
setFieldByNumber(44, value);
|
||||
return this;
|
||||
@@ -732,6 +1097,11 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPoolLengthUnit(final Integer value) {
|
||||
setFieldByNumber(46, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNumActiveLengths(final Integer value) {
|
||||
setFieldByNumber(47, value);
|
||||
return this;
|
||||
@@ -742,11 +1112,121 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgAltitude(final Double value) {
|
||||
setFieldByNumber(49, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxAltitude(final Double value) {
|
||||
setFieldByNumber(50, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGpsAccuracy(final Integer value) {
|
||||
setFieldByNumber(51, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgGrade(final Float value) {
|
||||
setFieldByNumber(52, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgPosGrade(final Float value) {
|
||||
setFieldByNumber(53, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgNegGrade(final Float value) {
|
||||
setFieldByNumber(54, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxPosGrade(final Float value) {
|
||||
setFieldByNumber(55, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxNegGrade(final Float value) {
|
||||
setFieldByNumber(56, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgTemperature(final Integer value) {
|
||||
setFieldByNumber(57, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxTemperature(final Integer value) {
|
||||
setFieldByNumber(58, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalMovingTime(final Double value) {
|
||||
setFieldByNumber(59, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgPosVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(60, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgNegVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(61, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxPosVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(62, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxNegVerticalSpeed(final Float value) {
|
||||
setFieldByNumber(63, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMinHeartRate(final Integer value) {
|
||||
setFieldByNumber(64, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInHrZone(final Double value) {
|
||||
setFieldByNumber(65, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInSpeedZone(final Double value) {
|
||||
setFieldByNumber(66, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInCadenceZone(final Double value) {
|
||||
setFieldByNumber(67, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInPowerZone(final Double value) {
|
||||
setFieldByNumber(68, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgLapTime(final Double value) {
|
||||
setFieldByNumber(69, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBestLapIndex(final Integer value) {
|
||||
setFieldByNumber(70, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMinAltitude(final Float value) {
|
||||
setFieldByNumber(71, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSwimCadence(final Float value) {
|
||||
setFieldByNumber(79, value);
|
||||
return this;
|
||||
@@ -757,6 +1237,41 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPlayerScore(final Integer value) {
|
||||
setFieldByNumber(82, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOpponentScore(final Integer value) {
|
||||
setFieldByNumber(83, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOpponentName(final String value) {
|
||||
setFieldByNumber(84, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStrokeCount(final Integer value) {
|
||||
setFieldByNumber(85, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setZoneCount(final Integer value) {
|
||||
setFieldByNumber(86, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxBallSpeed(final Float value) {
|
||||
setFieldByNumber(87, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgBallSpeed(final Float value) {
|
||||
setFieldByNumber(88, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgVerticalOscillation(final Float value) {
|
||||
setFieldByNumber(89, value);
|
||||
return this;
|
||||
@@ -782,6 +1297,11 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalFractionalCycles(final Float value) {
|
||||
setFieldByNumber(94, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgLeftTorqueEffectiveness(final Float value) {
|
||||
setFieldByNumber(101, value);
|
||||
return this;
|
||||
@@ -802,6 +1322,11 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgCombinedPedalSmoothness(final Float value) {
|
||||
setFieldByNumber(105, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFrontShifts(final Integer value) {
|
||||
setFieldByNumber(107, value);
|
||||
return this;
|
||||
@@ -817,6 +1342,11 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSportIndex(final Integer value) {
|
||||
setFieldByNumber(111, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStandTime(final Long value) {
|
||||
setFieldByNumber(112, value);
|
||||
return this;
|
||||
@@ -907,6 +1437,71 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgDepth(final Double value) {
|
||||
setFieldByNumber(140, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxDepth(final Double value) {
|
||||
setFieldByNumber(141, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSurfaceInterval(final Long value) {
|
||||
setFieldByNumber(142, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartCns(final Integer value) {
|
||||
setFieldByNumber(143, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndCns(final Integer value) {
|
||||
setFieldByNumber(144, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartN2(final Integer value) {
|
||||
setFieldByNumber(145, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndN2(final Integer value) {
|
||||
setFieldByNumber(146, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgRespirationRate(final Integer value) {
|
||||
setFieldByNumber(147, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxRespirationRate(final Integer value) {
|
||||
setFieldByNumber(148, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMinRespirationRate(final Integer value) {
|
||||
setFieldByNumber(149, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMinTemperature(final Integer value) {
|
||||
setFieldByNumber(150, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setO2Toxicity(final Integer value) {
|
||||
setFieldByNumber(155, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDiveNumber(final Long value) {
|
||||
setFieldByNumber(156, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTrainingLoadPeak(final Double value) {
|
||||
setFieldByNumber(168, value);
|
||||
return this;
|
||||
@@ -932,11 +1527,46 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalGrit(final Float value) {
|
||||
setFieldByNumber(181, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalFlow(final Float value) {
|
||||
setFieldByNumber(182, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setJumpCount(final Integer value) {
|
||||
setFieldByNumber(183, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgGrit(final Float value) {
|
||||
setFieldByNumber(186, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgFlow(final Float value) {
|
||||
setFieldByNumber(187, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPrimaryBenefit(final Integer value) {
|
||||
setFieldByNumber(188, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWorkoutFeel(final Integer value) {
|
||||
setFieldByNumber(192, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWorkoutRpe(final Integer value) {
|
||||
setFieldByNumber(193, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSpo2(final Integer value) {
|
||||
setFieldByNumber(194, value);
|
||||
return this;
|
||||
@@ -962,6 +1592,16 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalFractionalAscent(final Float value) {
|
||||
setFieldByNumber(199, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalFractionalDescent(final Float value) {
|
||||
setFieldByNumber(200, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBeginningPotential(final Integer value) {
|
||||
setFieldByNumber(205, value);
|
||||
return this;
|
||||
@@ -977,6 +1617,21 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgCoreTemperature(final Float value) {
|
||||
setFieldByNumber(208, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMinCoreTemperature(final Float value) {
|
||||
setFieldByNumber(209, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxCoreTemperature(final Float value) {
|
||||
setFieldByNumber(210, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStepSpeedLoss(final Float value) {
|
||||
setFieldByNumber(222, value);
|
||||
return this;
|
||||
@@ -992,6 +1647,11 @@ public class FitSession extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSession build() {
|
||||
return (FitSession) super.build();
|
||||
|
||||
+10
@@ -58,6 +58,11 @@ public class FitSkinTempOvernight extends RecordData {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getNightlyValue() {
|
||||
return (Float) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
@@ -91,6 +96,11 @@ public class FitSkinTempOvernight extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNightlyValue(final Float value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitSlaveDevice extends RecordData {
|
||||
public FitSlaveDevice(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 106) {
|
||||
throw new IllegalArgumentException("FitSlaveDevice expects global messages of " + 106 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getManufacturer() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProduct() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(106);
|
||||
}
|
||||
|
||||
public Builder setManufacturer(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setProduct(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSlaveDevice build() {
|
||||
return (FitSlaveDevice) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitSoftware extends RecordData {
|
||||
public FitSoftware(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 35) {
|
||||
throw new IllegalArgumentException("FitSoftware expects global messages of " + 35 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getVersion() {
|
||||
return (Float) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getPartNumber() {
|
||||
return (String) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(35);
|
||||
}
|
||||
|
||||
public Builder setVersion(final Float value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPartNumber(final String value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSoftware build() {
|
||||
return (FitSoftware) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitSpeedZone extends RecordData {
|
||||
public FitSpeedZone(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 53) {
|
||||
throw new IllegalArgumentException("FitSpeedZone expects global messages of " + 53 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getHighValue() {
|
||||
return (Float) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getName() {
|
||||
return (String) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(53);
|
||||
}
|
||||
|
||||
public Builder setHighValue(final Float value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setName(final String value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSpeedZone build() {
|
||||
return (FitSpeedZone) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+244
@@ -0,0 +1,244 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitSplit extends RecordData {
|
||||
public FitSplit(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 312) {
|
||||
throw new IllegalArgumentException("FitSplit expects global messages of " + 312 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSplitType() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalElapsedTime() {
|
||||
return (Double) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalTimerTime() {
|
||||
return (Double) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalDistance() {
|
||||
return (Double) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAvgSpeed() {
|
||||
return (Double) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartTime() {
|
||||
return (Long) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalAscent() {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTotalDescent() {
|
||||
return (Integer) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartPositionLat() {
|
||||
return (Long) getFieldByNumber(21);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartPositionLong() {
|
||||
return (Long) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEndPositionLat() {
|
||||
return (Long) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEndPositionLong() {
|
||||
return (Long) getFieldByNumber(24);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getMaxSpeed() {
|
||||
return (Double) getFieldByNumber(25);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getAvgVertSpeed() {
|
||||
return (Double) getFieldByNumber(26);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEndTime() {
|
||||
return (Long) getFieldByNumber(27);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTotalCalories() {
|
||||
return (Long) getFieldByNumber(28);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getStartElevation() {
|
||||
return (Double) getFieldByNumber(74);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTotalMovingTime() {
|
||||
return (Double) getFieldByNumber(101);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(312);
|
||||
}
|
||||
|
||||
public Builder setSplitType(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalElapsedTime(final Double value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalTimerTime(final Double value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalDistance(final Double value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgSpeed(final Double value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartTime(final Long value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalAscent(final Integer value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalDescent(final Integer value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartPositionLat(final Long value) {
|
||||
setFieldByNumber(21, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartPositionLong(final Long value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndPositionLat(final Long value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndPositionLong(final Long value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxSpeed(final Double value) {
|
||||
setFieldByNumber(25, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAvgVertSpeed(final Double value) {
|
||||
setFieldByNumber(26, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndTime(final Long value) {
|
||||
setFieldByNumber(27, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalCalories(final Long value) {
|
||||
setFieldByNumber(28, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartElevation(final Double value) {
|
||||
setFieldByNumber(74, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTotalMovingTime(final Double value) {
|
||||
setFieldByNumber(101, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitSplit build() {
|
||||
return (FitSplit) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitTankSummary extends RecordData {
|
||||
public FitTankSummary(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 323) {
|
||||
throw new IllegalArgumentException("FitTankSummary expects global messages of " + 323 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSensor() {
|
||||
return (Long) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getStartPressure() {
|
||||
return (Float) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getEndPressure() {
|
||||
return (Float) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getVolumeUsed() {
|
||||
return (Double) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(323);
|
||||
}
|
||||
|
||||
public Builder setSensor(final Long value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartPressure(final Float value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndPressure(final Float value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setVolumeUsed(final Double value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitTankSummary build() {
|
||||
return (FitTankSummary) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitTankUpdate extends RecordData {
|
||||
public FitTankUpdate(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 319) {
|
||||
throw new IllegalArgumentException("FitTankUpdate expects global messages of " + 319 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSensor() {
|
||||
return (Long) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPressure() {
|
||||
return (Float) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(319);
|
||||
}
|
||||
|
||||
public Builder setSensor(final Long value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPressure(final Float value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitTankUpdate build() {
|
||||
return (FitTankUpdate) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+80
@@ -60,6 +60,21 @@ public class FitTimeInZone extends RecordData {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInSpeedZone() {
|
||||
return (Double) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInCadenceZone() {
|
||||
return (Double) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTimeInPowerZone() {
|
||||
return (Double) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer[] getHrZoneHighBoundary() {
|
||||
final Object[] objectsArray = (Object[]) getFieldByNumber(6);
|
||||
@@ -72,6 +87,21 @@ public class FitTimeInZone extends RecordData {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getSpeedZoneHighBoundary() {
|
||||
return (Float) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getCadenceZoneHighBoundary() {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPowerZoneHighBoundary() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getHrCalcType() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
@@ -92,6 +122,16 @@ public class FitTimeInZone extends RecordData {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPwrCalcType() {
|
||||
return (Integer) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getFunctionalThresholdPower() {
|
||||
return (Integer) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
@@ -120,11 +160,41 @@ public class FitTimeInZone extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInSpeedZone(final Double value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInCadenceZone(final Double value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeInPowerZone(final Double value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHrZoneHighBoundary(final Integer[] value) {
|
||||
setFieldByNumber(6, (Object[]) value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSpeedZoneHighBoundary(final Float value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCadenceZoneHighBoundary(final Integer value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPowerZoneHighBoundary(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHrCalcType(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
@@ -145,6 +215,16 @@ public class FitTimeInZone extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPwrCalcType(final Integer value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFunctionalThresholdPower(final Integer value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
|
||||
+50
@@ -38,11 +38,36 @@ public class FitTimestampCorrelation extends RecordData {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getFractionalTimestamp() {
|
||||
return (Float) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSystemTimestamp() {
|
||||
return (Long) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getFractionalSystemTimestamp() {
|
||||
return (Float) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getLocalTimestamp() {
|
||||
return (Long) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTimestampMs() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSystemTimestampMs() {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
@@ -56,11 +81,36 @@ public class FitTimestampCorrelation extends RecordData {
|
||||
super(162);
|
||||
}
|
||||
|
||||
public Builder setFractionalTimestamp(final Float value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSystemTimestamp(final Long value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFractionalSystemTimestamp(final Float value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLocalTimestamp(final Long value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestampMs(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSystemTimestampMs(final Integer value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitTotals extends RecordData {
|
||||
public FitTotals(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 33) {
|
||||
throw new IllegalArgumentException("FitTotals expects global messages of " + 33 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimerTime() {
|
||||
return (Long) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getDistance() {
|
||||
return (Long) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getCalories() {
|
||||
return (Long) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSport() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getElapsedTime() {
|
||||
return (Long) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSessions() {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getActiveTime() {
|
||||
return (Long) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSportIndex() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(33);
|
||||
}
|
||||
|
||||
public Builder setTimerTime(final Long value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDistance(final Long value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCalories(final Long value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSport(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setElapsedTime(final Long value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSessions(final Integer value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActiveTime(final Long value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSportIndex(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitTotals build() {
|
||||
return (FitTotals) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitTrainingFile extends RecordData {
|
||||
public FitTrainingFile(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 72) {
|
||||
throw new IllegalArgumentException("FitTrainingFile expects global messages of " + 72 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getType() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getManufacturer() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getProduct() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSerialNumber() {
|
||||
return (Long) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimeCreated() {
|
||||
return (Long) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(72);
|
||||
}
|
||||
|
||||
public Builder setType(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setManufacturer(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setProduct(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSerialNumber(final Long value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimeCreated(final Long value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitTrainingFile build() {
|
||||
return (FitTrainingFile) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitTrainingSettings extends RecordData {
|
||||
public FitTrainingSettings(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 13) {
|
||||
throw new IllegalArgumentException("FitTrainingSettings expects global messages of " + 13 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getTargetDistance() {
|
||||
return (Double) getFieldByNumber(31);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getTargetSpeed() {
|
||||
return (Float) getFieldByNumber(32);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTargetTime() {
|
||||
return (Long) getFieldByNumber(33);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Double getPreciseTargetSpeed() {
|
||||
return (Double) getFieldByNumber(153);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(13);
|
||||
}
|
||||
|
||||
public Builder setTargetDistance(final Double value) {
|
||||
setFieldByNumber(31, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTargetSpeed(final Float value) {
|
||||
setFieldByNumber(32, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTargetTime(final Long value) {
|
||||
setFieldByNumber(33, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPreciseTargetSpeed(final Double value) {
|
||||
setFieldByNumber(153, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitTrainingSettings build() {
|
||||
return (FitTrainingSettings) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+184
@@ -0,0 +1,184 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitUserMetrics extends RecordData {
|
||||
public FitUserMetrics(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 79) {
|
||||
throw new IllegalArgumentException("FitUserMetrics expects global messages of " + 79 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getVo2Max() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getAge() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getHeight() {
|
||||
return (Float) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getWeight() {
|
||||
return (Float) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGender() {
|
||||
return (Integer) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMaxHr() {
|
||||
return (Integer) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getRemainingRecoveryTime() {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getInitialBodyBattery() {
|
||||
return (Integer) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getStartOfActivity() {
|
||||
return (Long) getFieldByNumber(16);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getBeginningPotential() {
|
||||
return (Integer) getFieldByNumber(32);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getEndOfPreviousActivity() {
|
||||
return (Long) getFieldByNumber(35);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getWakeUpTime() {
|
||||
return (Long) getFieldByNumber(39);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(79);
|
||||
}
|
||||
|
||||
public Builder setVo2Max(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAge(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setHeight(final Float value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWeight(final Float value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGender(final Integer value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMaxHr(final Integer value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRemainingRecoveryTime(final Integer value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setInitialBodyBattery(final Integer value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setStartOfActivity(final Long value) {
|
||||
setFieldByNumber(16, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBeginningPotential(final Integer value) {
|
||||
setFieldByNumber(32, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEndOfPreviousActivity(final Long value) {
|
||||
setFieldByNumber(35, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWakeUpTime(final Long value) {
|
||||
setFieldByNumber(39, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitUserMetrics build() {
|
||||
return (FitUserMetrics) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+70
@@ -85,6 +85,11 @@ public class FitUserProfile extends RecordData {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDefaultMaxRunningHeartRate() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDefaultMaxBikingHeartRate() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
@@ -130,6 +135,21 @@ public class FitUserProfile extends RecordData {
|
||||
return (Type) getFieldByNumber(21);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getLocalId() {
|
||||
return (Integer) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getGlobalId() {
|
||||
return (Integer) getFieldByNumber(23);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getYearOfBirth() {
|
||||
return (Integer) getFieldByNumber(24);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getWakeTime() {
|
||||
return (Long) getFieldByNumber(28);
|
||||
@@ -155,6 +175,21 @@ public class FitUserProfile extends RecordData {
|
||||
return (Integer) getFieldByNumber(32);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Type getDepthSetting() {
|
||||
return (Type) getFieldByNumber(47);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getDiveCount() {
|
||||
return (Long) getFieldByNumber(49);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -208,6 +243,11 @@ public class FitUserProfile extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDefaultMaxRunningHeartRate(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDefaultMaxBikingHeartRate(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
@@ -253,6 +293,21 @@ public class FitUserProfile extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLocalId(final Integer value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setGlobalId(final Integer value) {
|
||||
setFieldByNumber(23, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setYearOfBirth(final Integer value) {
|
||||
setFieldByNumber(24, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWakeTime(final Long value) {
|
||||
setFieldByNumber(28, value);
|
||||
return this;
|
||||
@@ -278,6 +333,21 @@ public class FitUserProfile extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDepthSetting(final Type value) {
|
||||
setFieldByNumber(47, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDiveCount(final Long value) {
|
||||
setFieldByNumber(49, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitUserProfile build() {
|
||||
return (FitUserProfile) super.build();
|
||||
|
||||
+10
@@ -48,6 +48,11 @@ public class FitWatchfaceSettings extends RecordData {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
@@ -66,6 +71,11 @@ public class FitWatchfaceSettings extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitWatchfaceSettings build() {
|
||||
return (FitWatchfaceSettings) super.build();
|
||||
|
||||
+194
@@ -0,0 +1,194 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitWeightScale extends RecordData {
|
||||
public FitWeightScale(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 30) {
|
||||
throw new IllegalArgumentException("FitWeightScale expects global messages of " + 30 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getWeight() {
|
||||
return (Float) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPercentFat() {
|
||||
return (Float) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPercentHydration() {
|
||||
return (Float) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getVisceralFatMass() {
|
||||
return (Float) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBoneMass() {
|
||||
return (Float) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getMuscleMass() {
|
||||
return (Float) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBasalMet() {
|
||||
return (Float) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPhysiqueRating() {
|
||||
return (Integer) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getActiveMet() {
|
||||
return (Float) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMetabolicAge() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getVisceralFatRating() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getUserProfileIndex() {
|
||||
return (Integer) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getBmi() {
|
||||
return (Float) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTimestamp() {
|
||||
return (Long) getFieldByNumber(253);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(30);
|
||||
}
|
||||
|
||||
public Builder setWeight(final Float value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPercentFat(final Float value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPercentHydration(final Float value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setVisceralFatMass(final Float value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBoneMass(final Float value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMuscleMass(final Float value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBasalMet(final Float value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPhysiqueRating(final Integer value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setActiveMet(final Float value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMetabolicAge(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setVisceralFatRating(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setUserProfileIndex(final Integer value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBmi(final Float value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTimestamp(final Long value) {
|
||||
setFieldByNumber(253, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitWeightScale build() {
|
||||
return (FitWeightScale) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+20
@@ -63,6 +63,16 @@ public class FitWorkout extends RecordData {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPoolLength() {
|
||||
return (Float) getFieldByNumber(14);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPoolLengthUnit() {
|
||||
return (Integer) getFieldByNumber(15);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getNotes() {
|
||||
return (String) getFieldByNumber(17);
|
||||
@@ -101,6 +111,16 @@ public class FitWorkout extends RecordData {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPoolLength(final Float value) {
|
||||
setFieldByNumber(14, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPoolLengthUnit(final Integer value) {
|
||||
setFieldByNumber(15, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNotes(final String value) {
|
||||
setFieldByNumber(17, value);
|
||||
return this;
|
||||
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitWorkoutSession extends RecordData {
|
||||
public FitWorkoutSession(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 158) {
|
||||
throw new IllegalArgumentException("FitWorkoutSession expects global messages of " + 158 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSport() {
|
||||
return (Integer) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSubSport() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNumValidSteps() {
|
||||
return (Integer) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getFirstStepIndex() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getPoolLength() {
|
||||
return (Float) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getPoolLengthUnit() {
|
||||
return (Integer) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(158);
|
||||
}
|
||||
|
||||
public Builder setSport(final Integer value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSubSport(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNumValidSteps(final Integer value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFirstStepIndex(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPoolLength(final Float value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setPoolLengthUnit(final Integer value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitWorkoutSession build() {
|
||||
return (FitWorkoutSession) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
+244
@@ -0,0 +1,244 @@
|
||||
/* Copyright (C) 2025 Freeyourgadget
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.FitRecordDataBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader;
|
||||
|
||||
/**
|
||||
* WARNING: This class was auto-generated, please avoid modifying it directly.
|
||||
* See {@link nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.codegen.FitCodeGen}
|
||||
* @noinspection unused
|
||||
*/
|
||||
public class FitWorkoutStep extends RecordData {
|
||||
public FitWorkoutStep(final RecordDefinition recordDefinition, final RecordHeader recordHeader) {
|
||||
super(recordDefinition, recordHeader);
|
||||
|
||||
final int globalNumber = recordDefinition.getGlobalFITMessage().getNumber();
|
||||
if (globalNumber != 27) {
|
||||
throw new IllegalArgumentException("FitWorkoutStep expects global messages of " + 27 + ", got " + globalNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getWktStepName() {
|
||||
return (String) getFieldByNumber(0);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getDurationType() {
|
||||
return (Integer) getFieldByNumber(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getDurationValue() {
|
||||
return (Long) getFieldByNumber(2);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getTargetType() {
|
||||
return (Integer) getFieldByNumber(3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getTargetValue() {
|
||||
return (Long) getFieldByNumber(4);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getCustomTargetValueLow() {
|
||||
return (Long) getFieldByNumber(5);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getCustomTargetValueHigh() {
|
||||
return (Long) getFieldByNumber(6);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getIntensity() {
|
||||
return (Integer) getFieldByNumber(7);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getNotes() {
|
||||
return (String) getFieldByNumber(8);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getEquipment() {
|
||||
return (Integer) getFieldByNumber(9);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getExerciseCategory() {
|
||||
return (Integer) getFieldByNumber(10);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getExerciseName() {
|
||||
return (Integer) getFieldByNumber(11);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Float getExerciseWeight() {
|
||||
return (Float) getFieldByNumber(12);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getWeightDisplayUnit() {
|
||||
return (Integer) getFieldByNumber(13);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getSecondaryTargetType() {
|
||||
return (Integer) getFieldByNumber(19);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSecondaryTargetValue() {
|
||||
return (Long) getFieldByNumber(20);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSecondaryCustomTargetValueLow() {
|
||||
return (Long) getFieldByNumber(21);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Long getSecondaryCustomTargetValueHigh() {
|
||||
return (Long) getFieldByNumber(22);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getMessageIndex() {
|
||||
return (Integer) getFieldByNumber(254);
|
||||
}
|
||||
|
||||
/**
|
||||
* @noinspection unused
|
||||
*/
|
||||
public static class Builder extends FitRecordDataBuilder {
|
||||
public Builder() {
|
||||
super(27);
|
||||
}
|
||||
|
||||
public Builder setWktStepName(final String value) {
|
||||
setFieldByNumber(0, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDurationType(final Integer value) {
|
||||
setFieldByNumber(1, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setDurationValue(final Long value) {
|
||||
setFieldByNumber(2, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTargetType(final Integer value) {
|
||||
setFieldByNumber(3, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTargetValue(final Long value) {
|
||||
setFieldByNumber(4, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCustomTargetValueLow(final Long value) {
|
||||
setFieldByNumber(5, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setCustomTargetValueHigh(final Long value) {
|
||||
setFieldByNumber(6, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setIntensity(final Integer value) {
|
||||
setFieldByNumber(7, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNotes(final String value) {
|
||||
setFieldByNumber(8, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setEquipment(final Integer value) {
|
||||
setFieldByNumber(9, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setExerciseCategory(final Integer value) {
|
||||
setFieldByNumber(10, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setExerciseName(final Integer value) {
|
||||
setFieldByNumber(11, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setExerciseWeight(final Float value) {
|
||||
setFieldByNumber(12, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setWeightDisplayUnit(final Integer value) {
|
||||
setFieldByNumber(13, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSecondaryTargetType(final Integer value) {
|
||||
setFieldByNumber(19, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSecondaryTargetValue(final Long value) {
|
||||
setFieldByNumber(20, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSecondaryCustomTargetValueLow(final Long value) {
|
||||
setFieldByNumber(21, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setSecondaryCustomTargetValueHigh(final Long value) {
|
||||
setFieldByNumber(22, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setMessageIndex(final Integer value) {
|
||||
setFieldByNumber(254, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FitWorkoutStep build() {
|
||||
return (FitWorkoutStep) super.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user