mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-06-02 11:26:09 +02:00
7ee82e6afa
note: only weather message definition and data tested so far also enable weather support for Instinct 2S and vivomove style also cleanup some unused constants that have been migrated to new enums in GFDIMessage additionally switch to new local implementation of GarminTimeUtils with needed methods
42 lines
1.6 KiB
Java
42 lines
1.6 KiB
Java
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.messages.status;
|
|
|
|
|
|
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.messages.GFDIMessage;
|
|
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.messages.MessageReader;
|
|
|
|
public abstract class GFDIStatusMessage extends GFDIMessage {
|
|
private Status status;
|
|
|
|
public static GFDIStatusMessage parseIncoming(MessageReader reader, int messageType) {
|
|
final GarminMessage garminMessage = GFDIMessage.GarminMessage.fromId(reader.readShort());
|
|
if (GarminMessage.PROTOBUF_REQUEST.equals(garminMessage) || GarminMessage.PROTOBUF_RESPONSE.equals(garminMessage)) {
|
|
return ProtobufStatusMessage.parseIncoming(reader, messageType);
|
|
} else if (GarminMessage.FIT_DEFINITION.equals(garminMessage)) {
|
|
return FitDefinitionStatusMessage.parseIncoming(reader, messageType);
|
|
} else if (GarminMessage.FIT_DATA.equals(garminMessage)) {
|
|
return FitDataStatusMessage.parseIncoming(reader, messageType);
|
|
} else {
|
|
final Status status = Status.fromCode(reader.readByte());
|
|
|
|
if (Status.ACK == status) {
|
|
LOG.info("Received ACK for message {}", garminMessage.name());
|
|
} else {
|
|
LOG.warn("Received {} for message {}", status, garminMessage.name());
|
|
}
|
|
|
|
reader.warnIfLeftover();
|
|
return new GenericStatusMessage(messageType, status);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected boolean generateOutgoing() {
|
|
return false;
|
|
}
|
|
|
|
protected Status getStatus() {
|
|
return status;
|
|
}
|
|
|
|
}
|