package com.solderbyte.openfit.util; import java.nio.ByteOrder; import java.nio.charset.Charset; public class OpenFitData { // Application type public static final byte FEATURE_EXCHANGE = 0; public static final byte HOME = 1; public static final byte HEALTH = 2; public static final byte NOTIFICATION = 3; public static final byte STATUS_MANAGER = 4; public static final byte FIND_MY_WINGTIP = 5; public static final byte MEDIA_CONTROLLER = 6; public static final byte GESTURE_SERVICE = 7; public static final byte SENSORDATA_SVC = 8; public static final byte CALL_APP = 9; public static final byte ALARM_APP = 10; public static final byte SPLANNER_APP = 11; // Data Type public static final byte PORT_CM = 99; public static final byte PORT_CM_FEATURE = 100; public static final byte PORT_CUP = 66; public static final byte PORT_FEATURE = 0; public static final byte PORT_FOTA = 77; public static final byte PORT_FOTA_COMMAND = 78; public static final byte PORT_REQUEST_READ_RSSI = 44; public static final byte PORT_RSSI = 127; public static final byte PORT_SENSOR = 8; public static byte DATA_TYPE_INCOMING_CALL = 0; public static byte DATA_TYPE_MISSCALL = 1; public static byte DATA_TYPE_CALL_ENDED = 2; public static byte DATA_TYPE_EMAIL = 3; public static byte DATA_TYPE_MESSAGE = 4; public static byte DATA_TYPE_ALARM = 5; public static byte DATA_TYPE_WEATHER = 7; public static byte DATA_TYPE_CHATON = 10; public static byte DATA_TYPE_GENERAL= 12; public static byte DATA_TYPE_REJECT_ACTION = 13; public static byte DATA_TYPE_ALARM_ACTION = 14; public static byte DATA_TYPE_SMART_RELAY_REQUEST = 17; public static byte DATA_TYPE_SMART_RELAY_RESPONSE = 18; public static byte DATA_TYPE_IMAGE = 33; public static byte DATA_TYPE_CMAS = 35; public static byte DATA_TYPE_EAS = 36; public static byte DATA_TYPE_RESERVED = 49; public static byte DATA_TYPE_MEDIATRACK = 2; public static byte DATA_TYPE_ALARMCLOCK = 1; public static byte NOTIFICATION_TYPE_INCOMING_CALL = 0; public static byte NOTIFICATION_TYPE_MISSED_CALL = 1; public static byte NOTIFICATION_TYPE_EMAIL = 2; public static byte NOTIFICATION_TYPE_MESSAGE = 3; public static byte NOTIFICATION_TYPE_ALARM = 4; public static byte NOTIFICATION_TYPE_SPLANNER = 5; public static byte NOTIFICATION_TYPE_WEATHER = 6; public static byte NOTIFICATION_TYPE_DOSAGE = 7; public static byte NOTIFICATION_TYPE_CHATON = 8; public static byte NOTIFICATION_TYPE_MYSINGLE = 9; public static byte NOTIFICATION_TYPE_BABY_CRYING_DETECTOR = 10; public static byte NOTIFICATION_TYPE_VOICE_MAIL = 11; public static byte NOTIFICATION_TYPE_GENERAL = 12; public static byte NOTIFICATION_ENABLED = 13; public static byte NOTIFICATION_TYPE_WATERINTAKE = 14; public static byte NOTIFICATION_OTHER_APP = 15; public static byte NOTIFICATION_LIMIT = 16; public static byte NOTIFICATION_PREVIEWMESSAGE = 17; public static byte NOTIFICATION_SCREENOFF = 18; public static byte NOTIFICATION_MORE_NOTIFICATION = 19; public static byte NOTIFICATION_TYPE_Docomo_Mailer = 20; public static byte NOTIFICATION_TYPE_AreaMail = 21; public static byte NOTIFICATION_TYPE_auEmail = 22; public static byte NOTIFICATION_TYPE_auSMS = 23; public static byte NOTIFICATION_TYPE_auDisaster = 24; public static byte NOTIFICATION_TYPE_Disaster_App = 25; public static byte NOTIFICATION_INIT_MODE = 26; public static byte NOTIFICATION_TYPE_RESERVED = 27; public static byte NOTIFICATION_TYPE_SMARTRELAY = 28; public static byte NOTIFICATION_TYPE_VZW_CMAS = 29; // Fitness type public static byte DATA_TYPE_USER_PROFILE = 0; public static byte DATA_TYPE_PEDOMETER_PROFILE = 1; public static byte DATA_TYPE_COACHING_PROFILE = 2; public static byte DATA_TYPE_PEDO_RESULTRECORD = 3; public static byte DATA_TYPE_PEDO_INFO = 4; public static byte DATA_TYPE_SLEEP_RESULTRECORD = 5; public static byte DATA_TYPE_SLEEP_INFO = 6; public static byte DATA_TYPE_HEARTRATE_RESULTRECORD = 7; public static byte DATA_TYPE_COACHING_VARS = 8; public static byte DATA_TYPE_COACHING_EXERCISERESULT = 9; public static byte DATA_TYPE_COACHING_RUNNINGEXERCISE = 10; public static byte DATA_TYPE_COACHING_ENERGYEXERCISE = 11; public static byte DATA_TYPE_COACHING_RESULTRECORD = 12; public static byte DATA_TYPE_GPS_INFO = 13; public static byte STRUCT_TYPE_DASHBOARD_PEDO_RESULT = 14; public static byte STRUCT_TYPE_DASHBOARD_COACHING_RESULT = 15; public static byte STRUCT_TYPE_DASHBOARD_HRM_RESULT = 16; public static byte STRUCT_TYPE_DASHBOARD_SLEEP_RESULT = 17; public static int WALK = 1; public static int RUN = 2; public static int CYCLING = 3; public static int HIKING = 4; public static int WALK_EXERCISE = 18002; public static int RUN_EXERCISE = 18003; public static int CYCLING_EXERCISE = 18004; public static int HIKING_EXERCISE = 18005; public static byte DATA_TYPE_HOST_TO_WINGTIP_SYNC_REQUEST = 0; public static byte DATA_TYPE_HOST_TO_WINGTIP_SYNC_DONE = 1; public static byte DATA_TYPE_HOST_TO_WINGTIP_SYNC_DATA = 2; public static byte DATA_TYPE_WINGTIP_TO_HOST_SYNC_DONE = 3; public static byte DATA_TYPE_WINGTIP_TO_HOST_SYNC_DATA = 4; public static byte DATA_TYPE_WINGTIP_TO_HOST_SYNC_REQUEST = 5; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_HIKING_START = 6; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_CYCLING_START = 7; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_WALKING_START = 8; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_RUNNING_START = 9; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_END = 10; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_REQUEST = 11; public static byte DATA_TYPE_HOST_TO_WINGTIP_GPS_READY = 12; public static byte DATA_TYPE_HOST_TO_WINGTIP_GPS_DATA = 13; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_SUBSCRIBE = 14; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_UNSUBSCRIBE = 15; public static byte DATA_TYPE_HOST_TO_WINGTIP_GPS_GPSON = 16; public static byte DATA_TYPE_HOST_TO_WINGTIP_GPS_GPSOFF = 17; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_READY = 18; public static byte DATA_TYPE_WINGTIP_TO_HOST_GPS_EXERCISE_START = 19; public static byte DATA_TYPE_HOST_TO_WINGTIP_SET_HEALTH_APP = 20; public static byte DATA_TYPE_WINGTIP_TO_HOST_SET_HEALTH_APP_DONE = 21; public static byte DATA_TYPE_HOST_TO_WINGTIP_GPS_RESULT = 22; public static byte DATA_TYPE_HOST_TO_WINGTIP_DASHBOARD_SYNC_REQUEST = 23; public static byte DATA_TYPE_HOST_TO_WINGTIP_DASHBOARD_SYNC_DATA = 24; public static byte DATA_TYPE_WINGTIP_TO_HOST_DASHBOARD_SYNC_DATA = 25; public static byte DATA_TYPE_WINGTIP_TO_HOST_DASHBOARD_SYNC_DONE = 26; public static byte DATA_TYPE_WINGTIP_TO_HOST_BAROMETER_READY = 27; public static byte DATA_TYPE_HOST_TO_WINGTIP_BAROMETER_ON = 28; public static byte DATA_TYPE_HOST_TO_WINGTIP_BAROMETER_OFF = 29; // ActivityType public static final int TYPE_ACTIVITY_HEAVY = 180004; public static final int TYPE_ACTIVITY_LIGHT = 180002; public static final int TYPE_ACTIVITY_LITTLE_TO_NO = 180001; public static final int TYPE_ACTIVITY_MODERATE = 180003; public static final int TYPE_ACTIVITY_VERY_HEAVY = 180005; // Gender public static final int FEMALE = 190006; public static final int MALE = 190005; // DistanceUnit public static final int KILLOMETERS = 170001; public static final int MILES = 170003; public static final int YARDS = 170002; // HeightUnit public static final int CM = 150001; public static final int FEET = 150002; // WeightUnit public static final int KILOGRAM = 130001; public static final int LBS = 130002; public static final int FITNESS_MENU = 27; public static final int FITNESS_CANCEL = 10; public static final int FITNESS_UNKOWN = 5; // Find device public static final byte FIND_START = 0; public static final byte FIND_STOP = 1; // Media Controller public static final byte FORWARD = 4; public static final byte FORWARD_RELEASE = 6; public static final byte OPEN = 0; public static final byte PAUSE = 2; public static final byte PLAY = 1; public static final byte REWIND = 5; public static final byte REWIND_RELEASE = 7; public static final byte STOP = 3; public static final byte CONTROL = 0; public static final byte INFO = 2; public static final byte REQUEST_START = 3; public static final byte REQUEST_STOP = 4; public static final byte VOLUME = 1; // Weather Type public static final int WEATHER_TYPE_CLEAR = 0; public static final int WEATHER_TYPE_COLD = 1; public static final int WEATHER_TYPE_FLURRIES = 2; public static final int WEATHER_TYPE_FOG = 3; public static final int WEATHER_TYPE_HAIL = 4; public static final int WEATHER_TYPE_HEAVY_RAIN = 5; public static final int WEATHER_TYPE_HOT = 6; public static final int WEATHER_TYPE_ICE = 7; public static final int WEATHER_TYPE_MOSTLY_CLEAR = 8; public static final int WEATHER_TYPE_MOSTLY_CLOUDY = 9; public static final int WEATHER_TYPE_MOSTLY_CLOUDY_FLURRIES = 10; public static final int WEATHER_TYPE_MOSTLY_CLOUDY_THUNDER_SHOWER = 11; public static final int WEATHER_TYPE_PARTLY_SUNNY = 12; public static final int WEATHER_TYPE_PARTLY_SUNNY_SHOWERS = 13; public static final int WEATHER_TYPE_RAIN = 14; public static final int WEATHER_TYPE_RAIN_SNOW = 15; public static final int WEATHER_TYPE_SANDSTORM = 16; public static final int WEATHER_TYPE_SHOWERS = 17; public static final int WEATHER_TYPE_SNOW = 18; public static final int WEATHER_TYPE_SUNNY = 19; public static final int WEATHER_TYPE_THUNDERSTORMS = 20; public static final int WEATHER_TYPE_WINDY = 21; public static final int WEATHER_TYPE_RESERVED = 22; // Weather Clock public static final int WEATHER_CLOCK_RESERVED = 0; public static final int WEATHER_CLOCK_SUNNY = 1; public static final int WEATHER_CLOCK_PARTLY_SUNNY = 2; public static final int WEATHER_CLOCK_MOSTLY_CLOUDY = 3; public static final int WEATHER_CLOCK_RAIN = 4; public static final int WEATHER_CLOCK_FOG = 5; public static final int WEATHER_CLOCK_SHOWERS = 6; public static final int WEATHER_CLOCK_PARTLY_SUNNY_SHOWERS = 7; public static final int WEATHER_CLOCK_THUNDERSTORMS = 8; public static final int WEATHER_CLOCK_MOSTLY_CLOUDY_THUNDER_SHOWER = 9; public static final int WEATHER_CLOCK_FLURRIES = 10; public static final int WEATHER_CLOCK_MOSTLY_CLOUDY_FLURRIES = 11; public static final int WEATHER_CLOCK_SNOW = 12; public static final int WEATHER_CLOCK_RAIN_SNOW = 13; public static final int WEATHER_CLOCK_ICE = 14; public static final int WEATHER_CLOCK_HOT = 15; public static final int WEATHER_CLOCK_COLD = 16; public static final int WEATHER_CLOCK_WINDY = 17; public static final int WEATHER_CLOCK_CLEAR = 18; public static final int WEATHER_CLOCK_MOSTLY_CLOUDY2 = 19; public static final int WEATHER_CLOCK_HAIL = 20; public static final int WEATHER_CLOCK_HEAVY_RAIN = 21; // Battery public static final byte CHARGING_AC = 2; public static final byte CHARGING_USB = 1; //public static final byte DISCHARGE; // Unknown Data Type public static final byte OPENFIT_DATA = 100; // Byte Type static final ByteOrder BYTE_ORDER = ByteOrder.LITTLE_ENDIAN; static final Charset DEFAULT_CHARSET = Charset.forName("UCS-2"); static final Charset DEFAULT_DECODING_CHARSET = Charset.forName("US-ASCII"); public static final int MAX_UNSIGNED_BYTE_VALUE = 255; public static final int SIZE_OF_DOUBLE = 8; public static final int SIZE_OF_FLOAT = 4; public static final int SIZE_OF_INT = 4; public static final int SIZE_OF_LONG = 8; public static final int SIZE_OF_SHORT = 2; // Protocol specific public static final byte TEXT_DATE_FORMAT_TYPE = 1; // 0,1,2 public static final byte NUMBER_DATE_FORMAT_TYPE = 2; // 0,1,2 public static final boolean IS_TIME_DISPLAY_24 = false; // 0,1 public static String getGender(int i) { if(i == FEMALE) { return "Female"; } else if(i == MALE) { return "Male"; } else { return null; } } public static String getDistanceUnit(int i) { if(i == KILLOMETERS) { return "Km"; } else if(i == MILES) { return "Mi"; } else if(i == YARDS) { return "Yd"; } else { return null; } } public static String getHeightUnit(int i) { if(i == CM) { return "cm"; } else if(i == FEET) { return "ft"; } else { return null; } } public static String getWeightUnit(int i) { if(i == KILOGRAM) { return "Kg"; } else if(i == LBS) { return "lbs"; } else { return null; } } }