mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-08-27 09:41:16 +02:00
125 lines
4.3 KiB
Java
125 lines
4.3 KiB
Java
|
/* Copyright (C) 2024 José Rebelo
|
||
|
|
||
|
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.cmfwatchpro;
|
||
|
|
||
|
import androidx.annotation.Nullable;
|
||
|
|
||
|
public enum CmfCommand {
|
||
|
ACTIVITY_DATA(0x0056, 0x0001),
|
||
|
ACTIVITY_FETCH_1(0xffff, 0x8005),
|
||
|
ACTIVITY_FETCH_2(0xffff, 0x9057),
|
||
|
ACTIVITY_FETCH_ACK_1(0xffff, 0x0005),
|
||
|
ACTIVITY_FETCH_ACK_2(0xffff, 0xa057),
|
||
|
ALARMS_GET(0x0063, 0x0002),
|
||
|
ALARMS_SET(0x0063, 0x0001),
|
||
|
APP_NOTIFICATION(0x0065, 0x0001),
|
||
|
AUTH_NONCE_REPLY(0xffff, 0x004c),
|
||
|
AUTH_NONCE_REQUEST(0xffff, 0x804b),
|
||
|
AUTH_PAIR_REPLY(0xffff, 0x0048),
|
||
|
AUTH_PAIR_REQUEST(0xffff, 0x8047),
|
||
|
AUTH_PHONE_NAME(0xffff, 0x8049),
|
||
|
AUTH_WATCH_MAC(0xffff, 0x0049),
|
||
|
AUTHENTICATED_CONFIRM_REPLY(0xffff, 0x0004),
|
||
|
AUTHENTICATED_CONFIRM_REQUEST(0xffff, 0x804d),
|
||
|
BATTERY(0x005c, 0x0001),
|
||
|
CALL_REMINDER(0xffff, 0x9066),
|
||
|
CONTACTS_GET(0x00d5, 0x0002),
|
||
|
CONTACTS_SET(0x00d5, 0x0001),
|
||
|
DATA_CHUNK_REQUEST_AGPS(0xffff, 0xa05f),
|
||
|
DATA_CHUNK_REQUEST_WATCHFACE(0xffff, 0xa064),
|
||
|
DATA_CHUNK_WRITE_AGPS(0xffff, 0x905f),
|
||
|
DATA_CHUNK_WRITE_WATCHFACE(0xffff, 0x9064),
|
||
|
DATA_TRANSFER_AGPS_FINISH_ACK_1(0xffff, 0xa060),
|
||
|
DATA_TRANSFER_AGPS_FINISH_ACK_2(0xffff, 0x9060),
|
||
|
DATA_TRANSFER_AGPS_INIT_REPLY(0xffff, 0xa05e),
|
||
|
DATA_TRANSFER_AGPS_INIT_REQUEST(0xffff, 0x905e),
|
||
|
DATA_TRANSFER_WATCHFACE_FINISH_ACK_1(0xffff, 0xa065),
|
||
|
DATA_TRANSFER_WATCHFACE_FINISH_ACK_2(0xffff, 0x9065),
|
||
|
DATA_TRANSFER_WATCHFACE_INIT_1_REQUEST(0xffff, 0x8052),
|
||
|
DATA_TRANSFER_WATCHFACE_INIT_1_REPLY(0xffff, 0x0052),
|
||
|
DATA_TRANSFER_WATCHFACE_INIT_2_REPLY(0xffff, 0xa063),
|
||
|
DATA_TRANSFER_WATCHFACE_INIT_2_REQUEST(0xffff, 0x9063),
|
||
|
DO_NOT_DISTURB(0x0099, 0x0001),
|
||
|
FACTORY_RESET(0x009a, 0x0001),
|
||
|
FIND_PHONE(0x005b, 0x0001),
|
||
|
FIND_WATCH(0x005d, 0x0001),
|
||
|
FIRMWARE_VERSION_GET(0xffff, 0x8006),
|
||
|
FIRMWARE_VERSION_RET(0xffff, 0x0006),
|
||
|
GOALS_SET(0x005e, 0x0001),
|
||
|
GPS_COORDS(0xffff, 0x906a),
|
||
|
HEART_MONITORING_ALERTS(0xffff, 0x9059),
|
||
|
HEART_MONITORING_ENABLED_GET(0x009b, 0x0002),
|
||
|
HEART_MONITORING_ENABLED_SET(0x009b, 0x0001),
|
||
|
HEART_RATE_RESTING(0x00da, 0x0001),
|
||
|
HEART_RATE_MANUAL_AUTO(0x0053, 0x0001),
|
||
|
HEART_RATE_WORKOUT(0x00e0, 0x0001),
|
||
|
LANGUAGE_RET(0xffff, 0xa06b),
|
||
|
LANGUAGE_SET(0xffff, 0x9058),
|
||
|
MUSIC_BUTTON(0xffff, 0xa05d),
|
||
|
MUSIC_INFO_ACK(0xffff, 0xa05c),
|
||
|
MUSIC_INFO_SET(0xffff, 0x905c),
|
||
|
SERIAL_NUMBER_GET(0x00de, 0x0002),
|
||
|
SERIAL_NUMBER_RET(0x00de, 0x0001),
|
||
|
SLEEP_DATA(0x0058, 0x0001),
|
||
|
SPO2(0x0055, 0x0001),
|
||
|
SPORTS_SET(0x00dc, 0x0001),
|
||
|
STANDING_REMINDER_GET(0x0060, 0x0002),
|
||
|
STANDING_REMINDER_SET(0x0060, 0x0001),
|
||
|
STRESS(0x009d, 0x0001),
|
||
|
TIME_FORMAT(0x005f, 0x0001),
|
||
|
TIME(0xffff, 0x8004),
|
||
|
TRIGGER_SYNC(0x005c, 0x0002),
|
||
|
UNIT_LENGTH(0xffff, 0x9067),
|
||
|
UNIT_TEMPERATURE(0xffff, 0x9068),
|
||
|
WAKE_ON_WRIST_RAISE(0x0062, 0x0001),
|
||
|
WATCHFACE(0x009f, 0x0001),
|
||
|
WATER_REMINDER_GET(0x0061, 0x0002),
|
||
|
WATER_REMINDER_SET(0x0061, 0x0001),
|
||
|
WEATHER_SET_1(0xffff, 0x906b),
|
||
|
WEATHER_SET_2(0x0066, 0x0001),
|
||
|
WORKOUT_GPS(0xffff, 0xa05a),
|
||
|
WORKOUT_SUMMARY(0x0057, 0x0001),
|
||
|
;
|
||
|
|
||
|
private final int cmd1;
|
||
|
private final int cmd2;
|
||
|
|
||
|
CmfCommand(final int cmd1, final int cmd2) {
|
||
|
this.cmd1 = cmd1;
|
||
|
this.cmd2 = cmd2;
|
||
|
}
|
||
|
|
||
|
public int getCmd1() {
|
||
|
return cmd1;
|
||
|
}
|
||
|
|
||
|
public int getCmd2() {
|
||
|
return cmd2;
|
||
|
}
|
||
|
|
||
|
@Nullable
|
||
|
public static CmfCommand fromCodes(final int cmd1, final int cmd2) {
|
||
|
for (final CmfCommand cmd : CmfCommand.values()) {
|
||
|
if (cmd.getCmd1() == cmd1 && cmd.getCmd2() == cmd2) {
|
||
|
return cmd;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
}
|