数据交换功能
10.1功能概述
当在App发起运动时,手环会从App产生的运动数据计算心率和卡路里返回App实现数据交换; 当手环发起运动时,手环产生的运动数据定时发送到App,实时展示运动数据。交换数据是以时间作为唯一参照,交换过程需要通过运动开始时间判断当前活动数据,如果时间对应不了,则无法交换数据。
10.2初始化运动数据
参数说明
- IDODataExchangeModel
参数 | 说明 | 备注 |
---|---|---|
day | 日 | int |
hour | 时 | int |
minute | 分 | int |
second | 秒 | int |
sportType | 运动类型 | 运动类型参照 IDOSportTypes文件说明 |
targetType | 目标类型 | int |
targetValue | 目标数值 | int |
forceStart | 是否强制开始 | int |
retCode | 代码 | 0:成功; 1:设备已经进入运动模式失败; 2: 设备电量低失败; 3:手环正在充电 |
status | 状态 | 0:全部有效, 1:距离无效, 2: gps 信号弱 |
errorCode | 错误码 | 0:成功; 1:设备已经进入运动模式失败 |
step | 步数 | int (单位:步) |
calories | 卡路里 | int (单位:J) |
distance | 距离 | int (单位:米) |
durations | 持续时间 | int (单位:分钟) |
isSave | 是否存储 | BOOL |
avgHrValue | 平均心率 | int |
maxHrValue | 最大心率 | int |
burnFatMins | 脂肪燃烧时长 | int (分钟) |
aerobicMins | 心肺锻炼时长 | int (分钟) |
limitMins | 极限锻炼时长 | int (分钟) |
curHrValue | 当前心率 | int |
intervalSecond | 心率间隔 | int |
hrValueSerial | 序列号 | int |
hrValues | 心率数据 | array str json |
Objc:
//初始化交换数据
IDODataExchangeModel * dataModel = [IDODataExchangeModel new];
//运动开始时间
IDOSetTimeInfoBluetoothModel * timeModel = [IDOSetTimeInfoBluetoothModel currentModel];
dataModel.day = timeModel.day;
dataModel.hour = timeModel.hour;
dataModel.minute = timeModel.minute;
dataModel.second = timeModel.second;
//运动类型
dataModel.sportType = sportType;
//目标类型
dataModel.targetType = targetType;
//目标值
datModel.targetValue = targetValue;
Swift:
//初始化交换数据
let dataModel = IDODataExchangeModel.init();
//运动开始时间
let timeModel = IDOSetTimeInfoBluetoothModel.current();
dataModel.day = timeModel!.day;
dataModel.hour = timeModel!.hour;
dataModel.minute = timeModel!.minute;
dataModel.second = timeModel!.second;
//运动类型
dataModel.sportType = sportType;
//目标类型
dataModel.targetType = targetType;
//目标值
datModel.targetValue = targetValue;
10.3App发起数据交换方法
- App发起运动开始
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appStartSportCommand:dataModel
startCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动发起成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动发起失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appStartSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动发起成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动发起失败
}
};
- App发起运动暂停
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appPauseSportCommand:dataModel
pauseCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动暂停成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动暂停失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appPauseSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动暂停成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动暂停失败
}
};
- App发起运动恢复
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appRestoreSportCommand:dataModel
appRestoreCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动恢复成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动恢复失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appRestoreSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动恢复成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动恢复失败
}
};
- App发起运动数据交换过程
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appIngSportCommand:dataModel
appIngCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动数据交换成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动数据交换失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appIngSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动数据交换成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动数据交换失败
}
};
- App发起运动结束
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appEndSportCommand:dataModel
appEndcallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动结束成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动结束失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appEndSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动结束成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动结束失败
}
};
- App发起运动,手环暂停
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appBlePauseReplyCommand:dataModel
appBlePauseCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动手环暂停成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动手环暂停失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appBlePauseReply(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动手环暂停成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动手环暂停失败
}
};
- App发起运动,手环恢复
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appBleRestoreReplyCommand:dataModel
appBleRestoreCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动手环恢复成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动手环恢复失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appBleRestoreReply(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动手环恢复成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动手环恢复失败
}
};
- App发起运动,手环结束
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand appBleEndReplyCommand:dataModel
appBleEndCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//运动手环结束成功
}else if (model.retCode == 2) {
//电量过低
}else {
//运动手环结束失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.appBleEndReply(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//运动手环结束成功
}else if model.retCode == 2 {
//电量过低
}else {
//运动手环结束失败
}
};
10.4Ble发起数据交换方法
- 手环发起运动开始
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand bleStartSportCommand:dataModel
bleStartCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//手环发起运动开始成功
}else if (model.retCode == 2) {
//电量过低
}else {
//手环发起运动开始失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.bleStartSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//手环发起运动开始成功
}else if model.retCode == 2 {
//电量过低
}else {
//手环发起运动开始失败
}
};
- 手环发起运动暂停
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand blePauseSportCommand:dataModel
blePauseCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//手环发起运动暂停成功
}else if (model.retCode == 2) {
//电量过低
}else {
//手环发起运动暂停失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.blePauseSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//手环发起运动暂停成功
}else if model.retCode == 2 {
//电量过低
}else {
//手环发起运动暂停失败
}
};
- 手环发起运动恢复
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand bleRestoreSportCommand:dataModel
bleRestoreCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//手环发起运动恢复成功
}else if (model.retCode == 2) {
//电量过低
}else {
//手环发起运动恢复失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.bleRestoreSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//手环发起运动恢复成功
}else if model.retCode == 2 {
//电量过低
}else {
//手环发起运动恢复失败
}
};
- 手环发起运动停止
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand bleEndSportCommand:dataModel
bleEndCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//手环发起运动停止成功
}else if (model.retCode == 2) {
//电量过低
}else {
//手环发起运动停止失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.bleEndSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//手环发起运动停止成功
}else if model.retCode == 2 {
//电量过低
}else {
//手环发起运动停止失败
}
};
- 手环发起运动交换数据
Objc:
//dataModel全局运动数据模型
[IDOFoundationCommand bleIngSportCommand:dataModel
bleIngCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
if (errorCode == 0 && model.retCode == 0) {
//手环发起运动交换数据成功
}else if (model.retCode == 2) {
//电量过低
}else {
//手环发起运动交换数据失败
}
}];
Swift:
//dataModel全局运动数据模型
IDOFoundationCommand.bleIngSportCommand(dataModel) { (model, errorCode) in
if errorCode == 0 && model.retCode == 0{
//手环发起运动交换数据成功
}else if model.retCode == 2 {
//电量过低
}else {
//手环发起运动交换数据失败
}
};