{IDO数据交换接口说明}
1.功能概述
提供发起数据交换、监听BLE设备的回复及BLE设备发起的数据交换的能力。
2.接口能力
1.查询是否支持V3运动数据交换:
1.1 功能概括:
无。
1.2 API ID:
bool get supportV3ActivityExchange;
1.3 API参数说明:
@return:bool 支持功能表,fasle:不支持,true:支持。
2.查询数据交换状态:
2.1 功能概括:
无。
2.2 API ID:
ExchangeStatus? get status;
2.3 API参数说明:
@param:ExchangeStatus 数据交换状态,包括:
enum ExchangeStatus {
init = 0, /// 初始化
appStart = 1, /// app发起开始
appStartReply = 2, /// app发起开始 ble回复
appEnd = 3, /// app发起结束
appEndReply = 4, /// app发起结束 ble回复
appPause = 5, /// app发起暂停
appPauseReply = 6, /// app发起暂停 ble回复
appRestore = 7, /// app发起恢复
appRestoreReply = 8, /// app发起恢复 ble回复
appIng = 9, /// app发起交换
appIngReply = 10, /// app发起交换 ble回复
getActivity = 11, /// 获取最后运动数据
getActivityReply = 12, /// 获取最后运动数据 ble回复
getHr = 13, /// 获取一分钟心率
getHrReply = 14, /// 获取一分钟心率 ble回复
getActivityGps = 15, /// 获取活动GPS
getActivityGpsReply = 16, /// 获取活动GPS ble回复
appStartPlan = 17, /// app开始运动计划
appStartPlanReply = 18, /// app开始运动计划 ble回复
appPausePlan = 19, /// app暂停运动计划
appPausePlanReply = 20, /// app暂停运动计划 ble回复
appRestorePlan = 21, /// app恢复运动计划
appRestorePlanReply = 22, /// app恢复运动计划 ble回复
appEndPlan = 23, /// app结束运动计划
appEndPlanReply = 24, /// app结束运动计划 ble回复
appSwitchAction = 25, /// app切换动作
appSwitchActionReply= 26, /// app结束运动计划 ble回复
appBlePause = 27, /// app发起的运动 ble发起暂停
appBlePauseReply = 28, /// app发起的运动 ble发起暂停 app回复
appBleRestore = 29, /// app发起的运动 ble发起恢复
appBleRestoreReply = 30, /// app发起的运动 ble发起恢复 app回复
appBleEnd = 31, /// app发起的运动 ble发起结束
appBleEndReply = 32, /// app发起的运动 ble发起结束 app回复
bleStart = 33, /// ble发起的运动 ble发起开始
bleStartReply = 34, /// ble发起的运动 ble发起开始 app回复
bleEnd = 35, /// ble发起的运动 ble发起结束
bleEndReply = 36, /// ble发起的运动 ble发起结束 app回复
blePause = 37, /// ble发起的运动 ble发起暂停
blePauseReply = 38, /// ble发起的运动 ble发起暂停 app回复
bleRestore = 39, /// ble发起的运动 ble发起恢复
bleRestoreReply = 40, /// ble发起的运动 ble发起恢复 app回复
bleIng = 41, /// ble发起的运动 ble发起交换
bleIngReply = 42, /// ble发起的运动 ble发起交换 app回复
bleStartPlan = 43, /// ble开始运动计划
blePausePlan = 44, /// ble暂停运动计划
bleRestorePlan = 45, /// ble恢复运动计划
bleEndPlan = 46, /// ble结束运动计划
bleSwitchAction = 47, /// ble切换动作
bleOperatePlanReply = 48, /// ble操作运动计划 app回复
}
3.APP执行数据交换:
3.1 功能概括:
提供发起运动开始、结束、暂停、恢复,运动中的数据交互及执行运动计划的能力。
3.2 API ID:
void appExec({required IDOBaseExchangeModel model});
3.3 API参数说明:
@param:执行类型,包括:
IDOAppStartExchangeModel // 执行发起运动开始
IDOAppEndExchangeModel // 执行发起运动结束
IDOAppIngExchangeModel // 执行交换运动数据
IDOAppPauseExchangeModel // 执行交换运动数据暂停
IDOAppRestoreExchangeModel // 执行交换运动数据恢复
IDOAppIngV3ExchangeModel // 执行v3交换运动数据
IDOAppOperatePlanExchangeModel // 执行操作运动计划
4.APP执行数据交换回复:
4.1 功能概括:
提供当由设备发起运动/运动执行运动交换时,APP回复设备请求的能力。
4.2 API ID:
void appReplyExec({required IDOBaseExchangeModel model});
4.3 API参数说明:
@param:执行类型,包括:
IDOBleStartReplyExchangeModel // app回复ble设备发送交换运动数据开始
IDOBleIngReplyExchangeModel // app回复ble设备交换运动数据过程中
IDOBleEndReplyExchangeModel // app回复ble设备发送交换运动数据结束
IDOBlePauseReplyExchangeModel // app回复ble设备发送交换运动数据暂停
IDOBleRestoreReplyExchangeModel // app回复ble设备发送交换运动数据恢复
IDOBleOperatePlanReplyExchangeModel // app回复ble设备操作运动计划
IDOAppBlePauseReplyExchangeModel // app回复ble设备发送交换运动数据暂停
IDOAppBleRestoreReplyExchangeModel // app回复ble设备发送交换运动数据恢复
IDOAppBleEndReplyExchangeModel // app回复ble设备发送交换运动数据结束
5.APP获取多运动交互结束后的多运动数据:
5.1 功能概括:
无。
5.2 API ID:
Stream<ExchangeResponse> getLastActivityData();
5.3 API参数说明:
@return:多运动数据模型IDOAppActivityDataV3ExchangeModel,模型成员包括:
int? day; /// 日期
int? hour; /// 时
int? minute; /// 分
int? second; /// 秒
int? sportType; /// 运动类型
int? year; /// 年份
int? month; /// 月份
int? version; /// 协议库版本号
int? hrInterval; /// 心率间隔 单位分钟
int? step; /// 步数
int? durations; /// 持续时间 单位秒
int? calories; /// 卡路里 单位大卡
int? distance; /// 距离 单位米
int? burnFatMins; /// 脂肪燃烧的心率持续时间 单位分钟
int? aerobicMins; /// 有氧运动的持续时间 单位分钟
int? limitMins; /// 极限锻炼的持续时间 单位分钟
int? warmUp; /// 热身运动
int? fatBurning; /// 脂肪燃烧
int? aerobicExercise; /// 有氧训练
int? anaerobicExercise; /// 无氧训练
int? extremeExercise; /// 极限训练
int? warmUpTime; /// 热身运动的累计时长 单位秒
int? fatBurningTime; /// 脂肪燃烧的累计时长 单位秒
int? aerobicExerciseTime; /// 有氧运动的累计时长 单位秒
int? anaerobicExerciseTime;/// 无氧运动的累计时长 单位秒
int? extremeExerciseTime; /// 极限锻炼的累计时长 单位秒
int? avgSpeed; /// 平均速度 单位km/h
int? maxSpeed; /// 最快速度 单位km/h
int? avgStepStride; /// 平均步幅 单位cm
int? maxStepStride; /// 最大步幅 单位cm
int? kmSpeed; /// 平均公里配速 单位秒/公里
int? fastKmSpeed; /// 最快公里配速 单位秒/公里
int? avgStepFrequency; /// 平均步频 单位步/分钟
int? maxStepFrequency; /// 最大步频 单位步/分钟
int? avgHrValue; /// 平均心率 单位BPM
int? maxHrValue; /// 最大心率 单位BPM
int? recoverTime; /// 恢复时长 单位小时 app收到该数据之后,每过1小时需要自减1
int? vo2max; /// 最大摄氧量 单位 ml/kg/min
int? trainingEffect; /// 训练效果 范围:1.0 - 5.0 (扩大10倍传输)
int? grade; /// 摄氧量等级 1:低等 2:业余 3:一般 4:平均 5:良好 6:优秀 7:专业
int? stepsFrequencyCount; /// 步频详情个数
int? miSpeedCount; /// 英里配速个数
int? realSpeedCount; /// 实时速度个数
int? paceSpeedCount; /// 实时配速个数
int? kmSpeedCount; /// 公里配速详情个数
int? actionDataCount; /// 本次动作训练个数
List<int>? kmSpeeds; /// 每公里耗时秒数 配速集合
List<int>? stepsFrequency; /// 步频集合 单位步/分钟
List<int>? itemsMiSpeed; /// 英里配速数组
List<int>? itemRealSpeed; /// 实时速度数组 单位km/h
List<int>? paceSpeedItems; /// 实时配速数组
/// 动作完成内容
/// type : 动作类型 1快走;2慢跑; 3中速跑;4快跑
/// heart_con_value : 每个动作心率控制
/// time : 动作完成时间 单位秒
/// goal_time :动作目标时间
List<Map<String,dynamic>>? actionData;
6.APP获取多运动交互结束后的心率数据:
6.1 功能概括:
无。
6.2 API ID:
Stream<ExchangeResponse> getActivityHrData();
6.3 API参数说明:
@return:一分钟心率模型IDOAppHrDataExchangeModel,模型成员包括:
int? day; /// 日期
int? hour; /// 时
int? minute; /// 分
int? second; /// 秒
int? sportType; /// 运动类型
int? version; /// 协议版本号
int? heartRateHistoryLen;/// 心率数据数组长度 最大60
int? interval; /// 心率间隔 单位秒
List<int>? heartRates; /// 心率数据数组 存一分钟的心率数据,1s存一个
7.APP监听设备发起数据交换:
7.1 功能概括:
提供监听设备主动发起数据交换的能力,监听到后APP执行数据交换回复。
7.2 API ID:
Stream<ExchangeResponse> appListenBleExec();
7.3 API参数说明:
@return:监听响应类型,包括:
IDOBleStartExchangeModel // ble设备发送交换运动数据开始
IDOBleIngExchangeModel // ble设备交换运动数据过程中
IDOBleEndExchangeModel // ble设备发送交换运动数据结束
IDOBlePauseExchangeModel // ble设备发送交换运动数据暂停
IDOBleRestoreExchangeModel // ble设备发送交换运动数据恢复
IDOBleOperatePlanExchangeModel // ble设备操作运动计划
IDOAppBlePauseExchangeModel // ble设备通知交换运动数据暂停
IDOAppBleRestoreExchangeModel // ble设备通知交换运动数据恢复
IDOAppBleEndExchangeModel // ble设备通知交换运动数据结束
8.APP监听APP执行数据交换后设备响应:
8.1 功能概括:
提供监听APP主动发起交换数据后,设备响应的能力。
8.2 API ID:
Stream<ExchangeResponse> appListenAppExec();
8.3 API参数说明:
@return:监听响应类型,包括:
IDOAppStartReplyExchangeModel // ble设备的回复app开始发起运动
IDOAppEndReplyExchangeModel // ble设备的回复app发起运动结束
IDOAppIngReplyExchangeModel // ble设备的回复app交换运动数据
IDOAppPauseReplyExchangeModel // ble设备的回复app交换运动数据暂停
IDOAppRestoreReplyExchangeModel // ble设备的回复app交换运动数据恢复
IDOAppIngV3ReplyExchangeModel // ble设备的回复appv3交换运动数据
IDOAppOperatePlanReplyExchangeModel // ble设备的回复app操作运动计划
9.APP监听交换V2运动数据响应
9.1 功能概括:
提供监听APP执行V2交换运动数据后BLE设备响应的能力。
9.2 API ID:
Stream<IDOV2ExchangeModel> v2_exchangeData();
9.3 API参数说明:
@return:监听返回模型IDOV2ExchangeModel,模型成员包括:
int? day; /// 日期
int? hour; /// 时
int? minute; /// 分
int? second; /// 秒
int? sportType; /// 运动类型
int? operate; /// 1:请求app打开gps 2:发起运动请求
int? targetValue; /// 0: 无目标,1: 重复次数,单位:次,2: 距离,单位:米,3:卡路里,单位:大卡,4:时长,单位:分钟,5:步数,单位:步
int? targetType; /// 目标数值
int? forceStart; /// 是否强制开始 0:不强制,1:强制
int? retCode; /// 0:成功; 1:设备已经进入运动模式失败;2: 设备电量低失败; 3:手环正在充电 4:正在使用Alexa 5:通话中
int? calories; /// 卡路里 (单位:Kcal)
int? distance; /// 距离 (单位:米)
int? durations; /// 持续时间 (单位:秒钟)
int? step; /// 步数 (单位:步)
int? avgHr; /// 平均心率
int? maxHr; /// 最大心率
int? curHr; /// 当前心率
int? hrSerial; /// 序列号
int? burnFatMins; /// 燃烧脂肪时长 (单位:分钟)
int? aerobicMins; /// 有氧时长 (单位:分钟)
int? limitMins; /// 极限时长 (单位:分钟)
bool? isSave; /// 是否存储数据
int? status; /// 0:全部有效 1:距离无效 2:gps信号弱
int? interval; /// 心率间隔
List<int>? hrValues = [];/// 心率数据集合
10.APP监听交换V3运动数据响应
10.1 功能概括:
提供监听APP执行V3交换运动数据后BLE设备响应的能力。
10.2 API ID:
Stream<IDOV3ExchangeModel> v3_exchangeData();
10.3 API参数说明:
@return:监听返回模型IDOV3ExchangeModel,模型成员包括:
int? year; /// 训练课程年份
int? month; /// 训练课程月份
int? day; /// 日期
int? hour; /// 时
int? minute; /// 分
int? second; /// 秒
int? sportType; /// 运动类型
int? planType; /// 计划类型 1:跑步计划3km 2:跑步计划5km 3:跑步计划10km 4:半程马拉松训练(二期) 5:马拉松训练(二期)
int? actionType; /// 动作类型 1:快走 2:慢跑 3:中速跑 4快跑 5:结束课程运动(还要等待用户是否有自由运动) 6:课程结束后自由运动(此字段当operate为5起作用)
int? version; /// 数据版本
int? operate; /// 1:请求app打开gps 2:发起运动请求
int? targetValue;/// 0:无目标,1:重复次数,单位:次,2:距离,单位:米,3:卡路里,单位:大卡,4:时长,单位:分钟,5:步数,单位:步
int? targetType; /// 目标数值
int? forceStart; /// 是否强制开始 0:不强制,1:强制
int? retCode; /// 0:成功; 1:设备已经进入运动模式失败;2: 设备电量低失败; 3:手环正在充电 4:正在使用Alexa 5:通话中
int? calories; /// 卡路里 (单位:kcal)
int? distance; /// 距离 (单位:米)
int? durations; /// 持续时间 (单位:秒钟)
int? step; /// 步数 (单位:步)
int? swimPosture;/// 0: 混合泳; 1: 自由泳; 2: 蛙泳; 3: 仰泳; 4: 蝶泳;
int? status; /// 手环返回的状态 开始:1,暂停:2, 结束:3,0:无效状态
int? signalFlag; /// 信号强弱 0: 表示信号弱, 1: 表示信号强
bool? isSave; /// 是否存储数据
int? realTimeSpeed; /// app计算显示实时速度 单位km/h 100倍 15秒一个记录
int? realTimePace; /// app计算显示实时配速 单位 s
int? interval; /// 心率间隔
int? hrCount; /// 心率个数
int? burnFatMins; /// 燃烧脂肪时长 (单位:分钟)
int? aerobicMins; /// 有氧时长 (单位:分钟)
int? limitMins; /// 极限时长 (单位:分钟)
List<int>? hrValues = []; /// 心率数据集合
int? warmUpSecond; /// 热身锻炼时长(秒钟)
int? anaeroicSecond; /// 无氧锻炼时长(秒钟)
int? fatBurnSecond; /// 燃脂锻炼时长(秒钟)
int? aerobicSecond; /// 有氧锻炼时长(秒钟)
int? limitSecond; /// 极限锻炼时长(秒钟)
int? avgHr; /// 平均心率
int? maxHr; /// 最大心率
int? curHr; /// 当前心率
int? warmUpValue; /// 热身运动值
int? fatBurnValue; /// 脂肪燃烧运动值
int? aerobicValue; /// 有氧运动值
int? limitValue; /// 极限运动值
int? anaerobicValue; /// 无氧运动值
int? avgSpeed; /// 平均速度 大美味哦km/h
int? maxSpeed; /// 最大速度 单位km/h
int? avgStepFrequency; /// 平均步频 单位步/分钟
int? maxStepFrequency; /// 最大步频 单位步/分钟
int? avgStepStride; /// 平均步幅 单位厘米
int? maxStepStride; /// 最大步幅 单位厘米
int? kmSpeed; /// 平均公里配速 单位厘米
int? fastKmSpeed; /// 最快公里配速 单位厘米
int? kmSpeedCount; /// 公里配速个数
List<int>? kmSpeeds = []; /// 公里配速集合
int? mileCount; /// 英里配速个数
List<int>? mileSpeeds = []; /// 英里配速集合
int? stepsFrequencyCount; /// 步频个数
List<int>? stepsFrequencys = [];/// 步频集合
int? trainingEffect; /// 训练效果 单位:无 范围 1.0 ~ 5.0 (*10倍)
int? anaerobicTrainingEffect; /// 无氧训练效果 单位:无 范围 1.0 ~ 5.0 (*10倍)
int? vo2Max; /// 最大摄氧量 单位:毫升/公斤/分钟 范围0-80
int? actionDataCount; /// 本次动作训练个数
int? inClassCalories; /// 课程内运动热量 单位千卡
int? completionRate; /// 动作完成率 0—100
int? hrCompletionRate; /// 心率控制率 0—100
int? recoverTime; /// 恢复时长:单位小时(app收到该数据之后,每过一小时需要自减一)
int? avgWeekActivityTime; /// 上个月平均每周的运动时间 单位分钟
int? grade; /// 摄氧量等级 1:低等 2:业余 3:一般 4:平均 5:良好 6:优秀 7:专业
/// 动作完成内容
/// type : 动作类型 1快走;2慢跑; 3中速跑;4快跑
/// heart_con_value : 每个动作心率控制
/// time : 动作完成时间 单位秒
/// goal_time :动作目标时间
List<Map<String,dynamic>>? actionData = [];
int? trainingOffset; /// 训练的课程日期偏移 从0开始
int? countHour; /// 运动倒计时
int? countMinute; /// 运动倒计时分
int? countSecond; /// 运动倒计时秒
int? time; /// 动作目标时间 单位秒
int? lowHeart; /// 心率范围低值
int? heightHeart; /// 心率范围高值
int? paceSpeedCount; /// 实时配速个数
List<int>? paceSpeeds = [];/// 实时配速数组 传过来的是秒 每5s算一次
int? realSpeedCount; /// 实时速度个数
List<int>? realSpeeds = [];/// 实时速度数组 传过来的是秒 每5s算一次
int? intervalSecond; /// gps 坐标点时间间隔
int? gpsCount; /// gps个数
/// gps数据详情集合 [{'latitude':0,'longitude':0}]
List<Map<String,dynamic>>? gpsData = [];
11.APP获取多运动交互一段时间的gps数据:
11.1 功能概括:
无。
11.2 API ID:
Stream<ExchangeResponse> getActivityGpsData();
11.3 API参数说明:
@return:GPS数据模型,模型成员包括:
int? day; /// 日期
int? hour; /// 时
int? minute; /// 分
int? second; /// 秒
int? sportType; /// 运动类型
int? version; /// 协议版本号
int? intervalSecond; /// 坐标点时间间隔 单位秒
int? gpsCount; /// 坐标点个数
/// gps数据详情集合 [{'latitude':0,'longitude':0}]
List<Map<String,dynamic>>? gpsData;