You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

232 lines
8.2 KiB

//
// JLWatchEnum.h
// JL_BLEKit
//
// Created by EzioChan on 2021/8/2.
// Copyright © 2021 www.zh-jieli.com. All rights reserved.
//
#import <Foundation/Foundation.h>
extern NSString *_Nonnull const JL_Watch_HeartRate;
extern NSString *_Nonnull const JL_Watch_AirPressure;
extern NSString *_Nonnull const JL_Watch_Altitude;
extern NSString *_Nonnull const JL_Watch_MoveSteps;
extern NSString *_Nonnull const JL_Watch_Stress;
extern NSString *_Nonnull const JL_Watch_Oxsaturation;
extern NSString *_Nonnull const JL_Watch_MaxOxg;
extern NSString *_Nonnull const JL_Watch_RecTime;
extern NSString *_Nonnull const JL_Watch_SportMsg;
extern NSString *_Nonnull const JL_Watch_WatchLog;
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(UInt8, JL_WATCH_LOG_MASK) {
/// 加速度
JL_WATCH_LOG_MASK_Acceleration = 0x80000000 >> 31,
/// 心率和血氧
JL_WATCH_LOG_MASK_HeartRate_BloodOxy = 0x80000000 >> 30,
};
typedef NS_ENUM(UInt8, JL_WATCH_LOG_TYPE) {
///设备回的加速度
JL_WATCH_LOG_TYPE_Res_Acceleration = 0x00,
/// 设备回的心率血氧
JL_WATCH_LOG_TYPE_Res_HeartRate_BloodOxy = 0x01,
};
/// 运动记录标记包类型
typedef NS_ENUM(UInt8, JL_SRMDataType) {
///开始包
JL_SRM_Start = 0x00,
///基础包
JL_SRM_Basic = 0x01,
///暂停包
JL_SRM_Pause = 0x02,
///每公里配速包
JL_SRM_Pace = 0x03,
///结束包
JL_SRM_End = 0xff,
};
// 实时健康数据类型
typedef NS_ENUM(UInt8, JL_SportDataType) {
///心率
JL_SportDataTypeHeartRate = 0,
///空气压强
JL_SportDataTypeAirPressure = 1,
///海拔高度
JL_SportDataTypeAltitude = 2,
///运动步数
JL_SportDataTypeMovementSteps = 3,
///压力
JL_SportDataTypeStress = 4,
///血氧饱和度
JL_SportDataTypeOxygenSaturation = 5,
///训练负荷
JL_SportDataTypeTrainingLoad = 6,
///最大摄氧量
JL_SportDataTypeMaxOxygenUptake = 7,
///运动恢复时间
JL_SportDataTypeRecoveryTime = 8,
///运动信息
JL_SportDataTypeSportMessage = 9,
};
// 运动模式
typedef NS_ENUM(UInt8, JL_SportPattern) {
JL_SportPatternRun = 0, ///跑步
JL_SportPatternClimb = 1, ///爬山
JL_SportPatternSwim = 2, ///游泳
};
// 运动数据格式
typedef NS_ENUM(UInt8, JL_SportDataFormat) {
JL_SportDataFormatBeUint8 = 1,
JL_SportDataFormatBeBigendUint16 = 2,
JL_SportDataFormatBeBigendUint32 = 4,
};
typedef NS_ENUM(UInt8, JL_WATCH_SETTING_MASK) {
JL_WATCH_SETTING_MASK_READ_INFO = 0x00,///App读取设备信息
JL_WATCH_SETTING_MASK_SET_INFO = 0x01,///向设备写入设置信 息
JL_WATCH_SETTING_MASK_RECIVE_INFO = 0x02,///收到设备推送设置信息
};
/// 查询读取设备信息
///使用示例:
/// 如查询:传感器、连续测量心率、跌到监察
/// 则对应的uint32_t 为:0x0000008A
/// 即对应的Bit位指示为:0000 0000 0000 0000 0000 0000 1000 1010
/// Bit0:保留(考虑是否用于做功能支持位)------ 0
/// Bit1:传感器功能
/// Bit2:久坐提醒
/// Bit3:连续测量心率
/// Bit4:运动心率提醒
/// Bit5:压力自动检测
/// Bit6:睡眠检测
/// Bit7:跌到监察
/// Bit8:抬腕监察
/// Bit9:个人信息
/// Bit10:蓝牙断开提醒
typedef NS_ENUM(uint32_t, JL_WATCH_SETTING) {
JL_WATCH_SETTING_SENSOR_FUNC = 0x0002, // Bit1:传感器功能
JL_WATCH_SETTING_SEDENTARY_REMIND = 0x0004, // Bit2:久坐提醒
JL_WATCH_SETTING_CONTINUOUS_HEARTRATE_MEASUREMENT = 0x0008, // Bit3:连续测量心率
JL_WATCH_SETTING_EXERCISE_HEARTRATE_REMINDER = 0x0010, // Bit4:运动心率提醒
JL_WATCH_SETTING_AUTOMATIC_PRESSURE_DETECTION = 0x0020, // Bit5:压力自动检测
JL_WATCH_SETTING_SLEEP_DETECTION = 0x0040, // Bit6:睡眠检测
JL_WATCH_SETTING_FALL_DETECTION = 0x0080, // Bit7:跌到监察
JL_WATCH_SETTING_LIFTWRIST_DETECTION = 0x0100, // Bit8:抬腕监察
JL_WATCH_SETTING_PERSONAL_INFO = 0x0200, // Bit9:个人信息
JL_WATCH_SETTING_BLUETOOTH_DISCONECTED_REMINDER = 0x0400, // Bit10:蓝牙断开提醒
};
/// 传感器功能开关
/// ///使用示例:
/// 如设置打开:计步器、计步器记录、血氧、血氧记录、海拔
/// 则对应的uint16_t 为:0x73
/// 即对应的Bit位指示为: 0111 0011
/// Bit0:计步器开关
/// Bit1:计步器记录开关
/// Bit2:心率传感器开关
/// Bit3:心率传感器记录开关
/// Bit4:血氧传感器开关
/// Bit5:血氧传感器记录开关
/// Bit6:海拔气压传感器开关
/// Bit7:海拔气压传感器记录开关
typedef NS_ENUM(uint16_t, JL_SENSOR_FUNC_SWITCH) {
JL_SENSOR_FUNC_SWITCH_PEDOMETER = 0x01, // Bit0:计步器开关
JL_SENSOR_FUNC_SWITCH_PEDOMETER_RECORD = 0x02, // Bit1:计步器记录开关
JL_SENSOR_FUNC_SWITCH_HEARTRATE = 0x04, // Bit2:心率传感器开关
JL_SENSOR_FUNC_SWITCH_HEARTRATE_RECORD = 0x08, // Bit3:心率传感器记录开关
JL_SENSOR_FUNC_SWITCH_BLOODOXYGEN = 0x10, // Bit4:血氧传感器开关
JL_SENSOR_FUNC_SWITCH_BLOODOXYGEN_RECORD = 0x20, // Bit5:血氧传感器记录开关
JL_SENSOR_FUNC_SWITCH_ALTITUDE_AIRPRESSURE = 0x40, // Bit6:海拔气压传感器开关
JL_SENSOR_FUNC_SWITCH_ALTITUDE_AIRPRESSURE_RECORD = 0x80, // Bit7:海拔气压传感器记录开关
};
///运动状态同步相关命令
typedef NS_ENUM(UInt8, JL_WearSyncStatus) {
/// 读取运动信息
JL_WearSyncStatus_ReadInfo = 0x00,
/// 开始运动
JL_WearSyncStatus_Start = 0x01,
/// APP结束运动
JL_WearSyncStatus_EndByApp = 0x02,
/// 固件结束运动
JL_WearSyncStatus_EndByDevice = 0x03,
/// 暂停运动
JL_WearSyncStatus_Pause = 0x04,
/// 继续运动
JL_WearSyncStatus_Continue = 0x05,
/// 请求运动实时数据
JL_WearSyncStatus_RealTimeInfoRequire = 0x06,
};
///运动模式类型
typedef NS_ENUM(UInt8, WatchSportType) {
/// 非运动模式
WatchSportType_NonExercise = 0x00,
/// 室外运动
WatchSportType_OutDoor = 0x01,
/// 室内运动
WatchSportType_InDoor = 0x02,
};
///运动状态
typedef NS_ENUM(UInt8, WatchSportStatus) {
/// 暂停
WatchSportStatus_Pause = 0x00,
/// 运动中
WatchSportStatus_Motion = 0x01
};
///心率模式
typedef NS_ENUM(UInt8, WatchHeartRateType) {
///最大心率模式
WatchHeartRate_Max = 0x00,
///存储心率模式
WatchHeartRate_Save = 0x01
};
/// 运动强度类型
typedef NS_ENUM(UInt8, WatchExerciseIntensityType) {
///非运动模式
WatchExercise_Not = 0x00,
///最大心率模式:热身 储备心率模式:有氧基础
WatchExercise_Level1 = 0x01,
///最大心率模式:燃脂 储备心率模式:有氧进阶
WatchExercise_Level2 = 0x02,
///最大心率模式:有氧耐力 储备心率模式:乳酸阈值
WatchExercise_Level3 = 0x03,
///最大心率模式:无氧耐力 储备心率模式:无氧基础
WatchExercise_Level4 = 0x04,
///最大心率模式:极限 储备心率模式:无氧进阶
WatchExercise_Level5 = 0x05
};
///睡眠类型
typedef NS_ENUM(UInt8, WatchSleepType) {
///清醒
WatchSleep_WideAwake = 0xFF,
/// 浅睡
WatchSleep_Light = 0x01,
/// 深睡
WatchSleep_Deep = 0x02,
/// 快速眼动
WatchSleep_RapidEyeMovement = 0x03,
/// 零星小睡
WatchSleep_SporadicNaps = 0x04
};
@interface JLWatchEnum : NSObject
/**
* 运动数据类型转换为运动数据格式
* @param sportDataType 运动数据类型
* @return JL_SportDataFormat 运动数据格式
*/
+ (JL_SportDataFormat)sportDataFormatFromSportDataType:(JL_SportDataType)sportDataType;
@end
NS_ASSUME_NONNULL_END