数据交换功能(新)
10.1功能概述
当在App发起运动时,手环会从App产生的运动数据计算心率和卡路里返回App实现数据交换; 当手环发起运动时,手环产生的运动数据定时发送到App,实时展示运动数据。交换数据是以时间作为唯一参照,交换过程需要通过运动开始时间判断当前活动数据,如果时间对应不了,则无法交换数据。
10.2初始化运动数据
参数 | 说明 | 备注 |
---|---|---|
v2Model | 当前交互v2数据模型 | IDOV2DataExchangeModel |
v3Model | 当前交互v3数据模型 | IDOV3DataExchangeModel |
isV3ActivityExchange | 是否为v3活动数据交换 | bool (否则为v2活动数据交换) |
exchangeStatus | 数据交换过程状态 | Enum (IDO_EXCHANGE_DATA_STATUS) |
isNewDataExchange | 是否使用新的数据交互 | 内部使用,区分旧的数据交换方法 |
delegate | 代理对象 | id |
- IDOV2DataExchangeModel
参数 | 说明 | 备注 |
---|---|---|
day | 日 | int |
hour | 时 | int |
minute | 分 | int |
second | 秒 | int |
sportType | 运动类型 | 当功能表 v3SportsType、set100SportSort 支持,运动类型从48开始,1-29运动类型为v2协议 运动类型参照 IDOSportTypes文件说明 |
targetType | 目标类型 | int 0x00:无目标, 0x01:重复次数,单位:次, 0x02:距离,单位:米, 0x03:卡路里, 单位:大卡, 0x04:时长,单位:分钟, 0x05: 步数, 单位:步 |
targetValue | 目标数值 | int |
forceStart | 是否强制开始 | int |
retCode | 进入运动状态 | 0:成功; 1:设备已经进入运动模式失败; 2: 设备电量低失败; 3:手环正在充电 4:正在使用Alexa 5:通话中 |
calories | 卡路里 | int (单位:J) |
distance | 距离 | int (单位:米) |
durations | 持续时间 | int (单位:分钟) |
step | 步数 | int (单位:步) |
avgHrValue | 平均心率 | int |
maxHrValue | 最大心率 | int |
burnFatMins | 脂肪燃烧时长 | int (分钟) |
aerobicMins | 心肺锻炼时长 | int (分钟) |
limitMins | 极限锻炼时长 | int (分钟) |
isSave | 是否存储 | BOOL |
status | 状态 | 0:全部有效, 1:距离无效, 2: gps 信号弱 |
curHrValue | 当前心率 | int |
hrValueSerial | 序列号 | int |
intervalSecond | 心率间隔 | int |
hrValues | 心率数据 | array str json |
- IDOV3DataExchangeModel
参数 | 说明 | 备注 |
---|---|---|
day | 日 | int |
hour | 时 | int |
minute | 分 | int |
second | 秒 | int |
sportType | 运动类型 | 当功能表 v3SportsType、set100SportSort 支持,运动类型从48开始,1-29运动类型为v2协议 运动类型参照 IDOSportTypes文件说明 |
planType | 计划类型 | int 0x01:跑步计划3km , 0x02:跑步计划5km , 0x03:跑步计划10km , 0x04:半程马拉松训练(二期) , 0x05:马拉松训练(二期) |
actionType | 动作类型 | int 1快走; 2慢跑; 3中速跑; 4快跑 ; 5结束课程运动 (还要等待用户是否有自由运动); 6课程结束后自由运动 (此字段当operate为0x05起作用) |
errorCode | 错误码 | int 0x00:成功 其他失败 |
targetType | 目标类型 | int 0x00:无目标, 0x01:重复次数,单位:次, 0x02:距离,单位:米, 0x03:卡路里, 单位:大卡, 0x04:时长,单位:分钟, 0x05: 步数, 单位:步 |
targetValue | 目标数值 | int |
forceStart | 是否强制开始 | int 0:不强制,1:强制 |
retCode | 代码 | 0:成功; 1:设备已经进入运动模式失败; 2: 设备电量低失败; 3:手环正在充电 4:正在使用Alexa 5:通话中 |
dataVersion | 数据版本 | int |
curHrValue | 当前心率 | int |
calories | 卡路里 | int (单位:J) |
distance | 距离 | int (单位:米) |
durations | 持续时间 | int (单位:分钟) |
step | 步数 | int (单位:步) |
swimPosture | 泳姿 | int 0x00 : 混合泳; 0x01 : 自由泳; 0x02 : 蛙泳; 0x03 : 仰泳; 0x04 : 蝶泳; |
status | 进入运动状态 | 开始:1,暂停:2, 结束:3,0:无效状态 |
isSave | 是否存储 | BOOL |
realTimeSpeed | app计算显示实时速度 单位km/h 100倍 15秒一个记录 | int |
realTimePace | app计算显示实时配速 | int (单位s) |
intervalSecond | 心率间隔 | int |
heartRateCount | 心率个数 | int |
hrValues | 心率数据 | array str json |
warmUpSecond | 热身锻炼时长 | int (秒钟) |
anaeroicSecond | 无氧锻炼时长 | int (秒钟) |
fatBurnSecond | 燃脂锻炼时长 | int (秒钟) |
aerobicSecond | 有氧锻炼时长 | int (秒钟) |
limitSecond | 极限锻炼时长 | int (秒钟) |
avgHrValue | 平均心率 | int |
maxHrValue | 最大心率 | int |
warmUpValue | 热身运动值 | int |
burnFatValue | 脂肪燃烧运动值 | int |
aerobicValue | 有氧运动值 | int |
limitValue | 极限运动值 | int |
anaerobicValue | 无氧运动值 | int |
avgSpeed | 平均速度 | km/h |
maxSpeed | 最大速度 | km/h |
avgStepFrequency | 平均步频 | int |
maxStepFrequency | 最大步频 | int |
avgStepStride | 平均步幅 | int |
maxStepStride | 最大步幅 | int |
kmSpeed | 平均公里配速 | int |
fastKmSpeed | 最快公里配速 | int |
kmSpeedCount | 公里配速个数 | int |
kmSpeeds | 公里配速集合 | array |
mileCount | 英里配速 个数 | array |
mileCount | 英里配速 个数 | int |
mileSpeeds | 英里配速集合 | array |
stepsFrequencyCount | 步频个数 | int |
stepsFrequencys | 步频集合 | array |
trainingEffect | 有氧训练效果 | 单位:无 范围 1.0 ~ 5.0 (*10倍) |
anaerobicTrainingEffect | 无氧训练效果 | 单位:无 范围 1.0 ~ 5.0 (*10倍) |
vo2Max | 最大摄氧量 | 单位:毫升/公斤/分钟; 范围 0-80 |
actionDataCount | 本次动作训练个数 | int |
inClassCalories | 课程内运动热量 | 单位千卡 |
completionRate | 动作完成率 | 0—100 |
hrCompletionRate | 心率控制率 | 0—100 |
recoverTime | 恢复时长 | 单位小时(app收到该数据之后,每过一小时需要自减一) |
grade | 摄氧量等级 | 0x01:低等 0x02:业余 0x03:一般 0x04:平均 0x05:良好 0x06:优秀 0x07:专业 |
actionData | 动作完成内容 | array type : 动作类型 1快走;2慢跑; 3中速跑;4快跑 heart_con_value : 每个动作心率控制 time : 动作完成时间 单位秒 goal_time :动作目标时间 |
trainingOffset | 训练的课程日期偏移 | int 从0开始 |
countHour | 运动倒计时 | int |
countMinute | 运动倒计时分 | int |
countSecond | 运动倒计时秒 | int |
trainingYear | 训练课程年份 | int |
trainingMonth | 训练课程月份 | int |
trainingDay | 训练课程日期 | int |
time | 动作目标时间 | int 单位秒 |
lowHeart | 心率范围低值 | int |
heightHeart | 心率范围高值 | int |
- app 发起运动开始
IDOAppStartExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType targetType 目标类型 0x00:无目标,
0x01:重复次数,单位:次,
0x02:距离,单位:米,
0x03: 卡路里, 单位:大卡,
0x04:时长,单位:分钟,
0x05: 步数, 单位:步targetValue 目标数值 int forceStart 是否强制开始 0:不强制,1:强制
+ (BOOL)appStartSportCommandWithModel:(IDOAppStartExchangeModel *)model
error:(NSError **)error;
- app 发起运动结束
IDOAppEndExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType durations 持续时间 单位:秒钟 calories 距离 单位:米 step 步数 单位:步 isSave 是否存储 bool
+ (BOOL)appEndSportCommandWithModel:(IDOAppEndExchangeModel *)model
error:(NSError **)error;
- app 发起运动暂停
IDONewDataExchangeModel
参数 说明 备注 day 日 int hour 时 int minute 分 int second 秒 int sportType 运动类型 int 参照上面表格
+ (BOOL)appPauseSportCommandWithModel:(IDONewDataExchangeModel *)model
error:(NSError **)error;
- app 发起运动恢复
IDONewDataExchangeModel
参数 说明 备注 day 日 int hour 时 int minute 分 int second 秒 int sportType 运动类型 int 参照上面表格
+ (BOOL)appRestoreSportCommandWithModel:(IDONewDataExchangeModel *)model
error:(NSError **)error;
- app 发起v2运动交换过程
IDOV2AppIngDataExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType status 状态 0:全部有效, 1:距离无效, 2: gps 信号弱 distance 距离 单位:米 calories 卡路里 单位:J durations 持续时间 单位:秒钟
+ (BOOL)v2_appIngSportCommandWithModel:(IDOV2AppIngDataExchangeModel *)model
error:(NSError **)error;
- app 发起v3运动交换过程
IDOV3AppIngDataExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType dataVersion 数据版本 运动计划版本号为0x20,
不需要传sportTypedistance 距离 单位:米 calories 卡路里 单位:J durations 持续时间 单位:秒钟 signalFlag gps信号强弱 0: 表示信号弱, 1: 表示信号强 realTimeSpeed app计算显示实时速度 单位km/h 100倍 15秒一个记录
+ (BOOL)v3_appIngSportCommandWithModel:(IDOV3AppIngDataExchangeModel *)model
error:(NSError **)error;
- ble 发起运动结束回复
IDOBleEndReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType distance 距离 单位:米 calories 卡路里 单位:J durations 持续时间 单位:秒钟 errorCode 运动数据交换错误码 0:成功; 其他失败
+ (BOOL)bleEndSportReplyCommandWithModel:(IDOBleEndReplyExchangeModel *)model
error:(NSError **)error;
- ble 发起运动暂停回复
IDOBlePauseReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType errorCode 运动数据交换错误码 0:成功; 其他失败
+ (BOOL)blePauseSportReplyCommandWithModel:(IDOBlePauseReplyExchangeModel *)model
error:(NSError **)error;
- ble 发起运动恢复回复
IDOBlePauseReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType errorCode 运动数据交换错误码 0:成功; 其他失败
+ (BOOL)bleRestoreSportReplyCommandWithModel:(IDOBleRestoreReplyExchangeModel *)model
error:(NSError **)error;
- app 运动计划操作
IDOAppOperatePlanExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType operate 操作码 0x01:开始运动 ,
0x02:暂停运动 ,
0x03:恢复运动 ,
0x04:结束运动
0x05: 切换动作trainingOffset 训练的课程日期偏移 从0开始 actionType 动作类型 1快走;
2慢跑;
3中速跑;
4快跑 ;
5结束课程运动 (还要等待用户是否有自由运动);
6课程结束后自由运动 (此字段当operate为0x05起作用)planType 计划类型 0x01:跑步计划3km ,
0x02:跑步计划5km ,
0x03:跑步计划10km ,
0x04:半程马拉松训练(二期) ,
0x05:马拉松训练(二期)errorCode 错误码 0x00:成功 其他失败(下发操作不需要赋值)
+ (BOOL)appPlanSportCommandWithModel:(IDOAppOperatePlanExchangeModel *)model
error:(NSError **)error;
- ble 运动计划操作回复
IDOBleOperatePlanReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType operate 操作码 0x01:开始运动 ,
0x02:暂停运动 ,
0x03:恢复运动 ,
0x04:结束运动
0x05: 切换动作actionType 动作类型 1快走;
2慢跑;
3中速跑;
4快跑 ;
5结束课程运动 (还要等待用户是否有自由运动);
6课程结束后自由运动 (此字段当operate为0x05起作用)planType 计划类型 0x01:跑步计划3km ,
0x02:跑步计划5km ,
0x03:跑步计划10km ,
0x04:半程马拉松训练(二期) ,
0x05:马拉松训练(二期)errorCode 错误码 0x00:成功 其他失败(下发操作不需要赋值)
+ (BOOL)blePlanSportReplyCommandWithModel:(IDOBleOperatePlanReplyExchangeModel *)model
error:(NSError **)error;
- 获取v3心率数据
+ (BOOL)v3_getActivityHrDataWithError:(NSError **)error;
- v3运动结束后获取活动数据
+ (BOOL)v3_getActivityEndDataWithError:(NSError **)error;
10.3代理协议回调
- app运动开始ble回复
IDOAppStartReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType retCode 进入运动状态 0:成功;
1:设备已经进入运动模式失败;
2: 设备电量低失败;
3:手环正在充电
4:正在使用Alexa
5:通话中
- (void)appStartSportReplyWithModel:(IDOAppStartReplyExchangeModel *)model errorCode:(int)errorCode;
- app运动暂停ble回复
IDOAppPauseReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType errorCode 错误码 0:成功 其他失败
- (void)appPauseSportReplyWithModel:(IDOAppPauseReplyExchangeModel *)model errorCode:(int)errorCode;
- app运动恢复ble回复
IDOAppRestoreReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType errorCode 错误码 0:成功 其他失败
- (void)appRestoreSportReplyWithModel:(IDOAppRestoreReplyExchangeModel *)model errorCode:(int)errorCode;
- app运动结束ble回复
IDOAppEndReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType errorCode 错误码 0:成功 其他失败 distance 距离 单位:米 calories 卡路里 单位:J step 步数 单位:步 avgHrValue 平均心率 int maxHrValue 最大心率 int burnFatMins 燃烧脂肪时长 int aerobicMins 有氧时长 int limitMins 极限时长 int
- (void)v2_appEndSportReplyWithModel:(IDOAppEndReplyExchangeModel *)model errorCode:(int)errorCode;
- v2 app运动交互中ble回复
IDOV2AppIngReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType status 状态码 0:全部有效,
1:距离无效,
2: gps 信号弱curHrValue 当前心率 int distance 距离 单位:米 calories 卡路里 单位:J step 步数 单位:步 hrValueSerial 序列号 int intervalSecond 心率间隔 int hrValues 心率数据 array
- (void)v2_appIngSportReplyWithModel:(IDOV2AppIngReplyExchangeModel *)model errorCode:(int)errorCode;
- v3 app运动交互中ble回复
IDOV3AppIngReplyExchangeModel
参数 说明 备注 IDONewDataExchangeModel 父类属性 day、hour、minute、second、sportType dataVersion 数据版本 运动计划版本号为0x20 curHrValue 当前心率 int distance 距离 单位:米 calories 卡路里 单位:J step 步数 单位:步 durations 持续时间 单位:秒钟 swimPosture 泳姿 0x00 : 混合泳;
0x01 : 自由泳;
0x02 : 蛙泳;
0x03 : 仰泳;
0x04 : 蝶泳;status 手环返回的状态 开始:1,暂停:2, 结束:3,0:无效状态 status 手环返回的状态 开始:1,
暂停:2,
结束:3,
0:无效状态kmSpeed 平均公里配速 int realTimeSpeed app计算显示实时速度 单位km/h 100倍 15秒一个记录 realTimePace app计算显示实时配速 单位 s anaerobicTrainingEffect 无氧训练效果 单位:无 范围 1.0 ~ 5.0 (*10倍) trainingEffect 有氧训练效果 单位:无 范围 1.0 ~ 5.0 (*10倍) countHour 运动倒计时 int countMinute 运动倒计时分 int countSecond 运动倒计时秒 int
- (void)v3_appIngSportReplyWithModel:(IDOV3AppIngReplyExchangeModel *)model errorCode:(int)errorCode;
- v3 app运动结束后获取心率数据
- IDOHrDataExchangeModel
参数 | 说明 | 备注 |
---|---|---|
IDONewDataExchangeModel | 父类属性 | day、hour、minute、second、sportType |
intervalSecond | 心率间隔 | int |
heartRateCount | 心率个数 | int |
hrValues | 心率数据 | 心率集合 |
- (void)v3_appSportHrReplyWithModel:(IDOHrDataExchangeModel *)model errorCode:(int)errorCode;
- v3 app运动结束后返回数据
- IDOV3SportEndDataExchangeModel
参数 | 说明 | 备注 |
---|---|---|
IDONewDataExchangeModel | 父类属性 | day、hour、minute、second、sportType |
year | 年份 | int |
month | 月份 | int |
dataVersion | 数据版本 | 运动计划版本号为0x20(32) |
planType | 计划类型 | int 0x01:跑步计划3km , 0x02:跑步计划5km , 0x03:跑步计划10km , 0x04:半程马拉松训练(二期) , 0x05:马拉松训练(二期) |
intervalSecond | 心率间隔 | int |
calories | 卡路里 | int (单位:J) |
distance | 距离 | int (单位:米) |
durations | 持续时间 | int (单位:分钟) |
step | 步数 | int (单位:步) |
warmUpSecond | 热身锻炼时长 | int (秒钟) |
anaeroicSecond | 无氧锻炼时长 | int (秒钟) |
fatBurnSecond | 燃脂锻炼时长 | int (秒钟) |
aerobicSecond | 有氧锻炼时长 | int (秒钟) |
limitSecond | 极限锻炼时长 | int (秒钟) |
avgHrValue | 平均心率 | int |
maxHrValue | 最大心率 | int |
warmUpValue | 热身运动值 | int |
burnFatValue | 脂肪燃烧运动值 | int |
aerobicValue | 有氧运动值 | int |
limitValue | 极限运动值 | int |
anaerobicValue | 无氧运动值 | int |
avgSpeed | 平均速度 | km/h |
maxSpeed | 最大速度 | km/h |
avgStepFrequency | 平均步频 | int |
maxStepFrequency | 最大步频 | int |
avgStepStride | 平均步幅 | int |
maxStepStride | 最大步幅 | int |
kmSpeed | 平均公里配速 | int |
fastKmSpeed | 最快公里配速 | int |
kmSpeedCount | 公里配速个数 | int |
kmSpeeds | 公里配速集合 | array |
mileCount | 英里配速 个数 | array |
mileCount | 英里配速 个数 | int |
mileSpeeds | 英里配速集合 | array |
stepsFrequencyCount | 步频个数 | int |
stepsFrequencys | 步频集合 | array |
trainingEffect | 有氧训练效果 | 单位:无 范围 1.0 ~ 5.0 (*10倍) |
vo2Max | 最大摄氧量 | 单位:毫升/公斤/分钟; 范围 0-80 |
actionDataCount | 本次动作训练个数 | int |
inClassCalories | 课程内运动热量 | 单位千卡 |
completionRate | 动作完成率 | 0—100 |
hrCompletionRate | 心率控制率 | 0—100 |
recoverTime | 恢复时长 | 单位小时(app收到该数据之后,每过一小时需要自减一) |
grade | 摄氧量等级 | 0x01:低等 0x02:业余 0x03:一般 0x04:平均 0x05:良好 0x06:优秀 0x07:专业 |
actionData | 动作完成内容 | array type : 动作类型 1快走;2慢跑; 3中速跑;4快跑 heart_con_value : 每个动作心率控制 time : 动作完成时间 单位秒 goal_time :动作目标时间 |
trainingOffset | 训练的课程日期偏移 | int 从0开始 |
- (void)v3_appEndSportReplyWithModel:(IDOV3SportEndDataExchangeModel *)model errorCode:(int)errorCode;
- ble停止app运动
- IDOBleEndExchangeModel
参数 | 说明 | 备注 |
---|---|---|
IDONewDataExchangeModel | 父类属性 | day、hour、minute、second、sportType |
distance | 距离 | 单位:米 |
calories | 卡路里 | 单位:J |
step | 步数 | 单位:步 |
isSave | 是否存储 | bool |
avgHrValue | 平均心率 | int |
maxHrValue | 最大心率 | int |
burnFatMins | 脂肪燃烧时长 (分钟) | int |
aerobicMins | 有氧锻炼时长(分钟) | int |
limitMins | 极限锻炼时长(分钟) | int |
- (void)bleEndAppSportWithModel:(IDOBleEndExchangeModel *)model errorCode:(int)errorCode;
- ble暂停app运动
- IDONewDataExchangeModel
参数 | 说明 | 备注 |
---|---|---|
IDONewDataExchangeModel | 父类属性 | day、hour、minute、second、sportType |
- (void)blePauseAppSportWithModel:(IDONewDataExchangeModel *)model errorCode:(int)errorCode;
- ble恢复app运动
- IDONewDataExchangeModel
参数 | 说明 | 备注 |
---|---|---|
IDONewDataExchangeModel | 父类属性 | day、hour、minute、second、sportType |
- (void)bleRestoreAppSportWithModel:(IDONewDataExchangeModel *)model errorCode:(int)errorCode;
- app操作运动计划返回
- IDOAppOperatePlanExchangeModel
参数 | 说明 | 备注 |
---|---|---|
IDONewDataExchangeModel | 父类属性 | day、hour、minute、second、sportType |
operate | 操作类型 | 0x01:开始运动 , 0x02:暂停运动 , 0x03:恢复运动 , 0x04:结束运动 0x05: 切换动作 |
trainingOffset | 训练的课程日期偏移 | int 从0开始 |
actionType | 动作类型 | 1快走; 2慢跑; 3中速跑; 4快跑 |
planType | 计划类型 | 0x01:跑步计划3km , 0x02:跑步计划5km , 0x03:跑步计划10km , 0x04:半程马拉松训练(二期) , 0x05:马拉松训练(二期) |
errorCode | 错误码 | int 0x00:成功 其他失败 |
- (void)appOperatePlanReplyWithModel:(IDOAppOperatePlanExchangeModel *)model errorCode:(int)errorCode;
- ble操作运动计划返回
- IDOBleOperatePlanExchangeModel
参数 | 说明 | 备注 |
---|---|---|
IDONewDataExchangeModel | 父类属性 | day、hour、minute、second、sportType |
operate | 操作类型 | 0x01:开始运动 , 0x02:暂停运动 , 0x03:恢复运动 , 0x04:结束运动 0x05: 切换动作 |
actionType | 动作类型 | 1快走; 2慢跑; 3中速跑; 4快跑 |
planType | 计划类型 | 0x01:跑步计划3km , 0x02:跑步计划5km , 0x03:跑步计划10km , 0x04:半程马拉松训练(二期) , 0x05:马拉松训练(二期) |
errorCode | 错误码 | int 0x00:成功 其他失败 |
trainingYear | 训练课程年份 | int |
trainingMonth | 训练课程月份 | int |
trainingDay | 训练课程日期 | int |
time | 动作目标时间 | int 单位秒 |
lowHeart | 心率范围低值 | int |
heightHeart | 心率范围高值 | int |
- (void)bleOperatePlanWithModel:(IDOBleOperatePlanExchangeModel *)model errorCode:(int)errorCode;