Data exchange function

10.1Functional Overview

When an exercise is initiated in the app, the bracelet will calculate the heart rate and calories from the exercise data generated by the app and return it to the app for data exchange; When the wristband starts to exercise, the exercise data generated by the wristband is sent to the App regularly to display the exercise data in real time. The exchange data is based on time as the only reference. During the exchange process, the current activity data needs to be judged by the movement start time. If the time does not correspond, the data cannot be exchanged.。

10.2 Initialize motion data

Parameter Description

  • IDODataExchangeModel
Parameters/strong> illustrate Remarks
day Day int
hour hour int
minute minute int
second second int
sportType sportType refer to the IDOSportTypes file description for motion types
targetType targetType int
targetValue targetValue int
forceStart Whether to force start int
retCode code 0:success;
1:The device has entered sports mode failed;
2: Device battery low failure;
3:bracelet is charging
status status 0:all valid,
1:Invalid distance,
2: gps Weak signal
errorCode errorCode 0:success;
1:Device has entered sport mode failed
step step int (Unit: step)
calories calories int (Unit:J)
distance distance int (Unit: m)
durations durations int (Unit: minutes)
isSave Is it stored BOOL
avgHrValue average heart rate int
maxHrValue maximum heart rate int
burnFatMins fat burning time int (minute)
aerobicMins Cardio workout time int (minute)
limitMins Maximum workout time int (minute)
curHrValue current heart rate int
intervalSecond heart rate interval int
hrValueSerial serial number int
hrValues Heart rate data array str json

Objc:

//Initialize exchange data
IDODataExchangeModel * dataModel = [IDODataExchangeModel new];
//exercise start time
IDOSetTimeInfoBluetoothModel * timeModel = [IDOSetTimeInfoBluetoothModel currentModel];
dataModel.day    = timeModel.day;
dataModel.hour   = timeModel.hour;
dataModel.minute = timeModel.minute;
dataModel.second = timeModel.second;
//sport type
dataModel.sportType = sportType;
//target type
dataModel.targetType = targetType;
//target value
datModel.targetValue = targetValue;

Swift:

//Initialize exchange data
let dataModel = IDODataExchangeModel.init();
//exercise start time
let timeModel = IDOSetTimeInfoBluetoothModel.current();
dataModel.day = timeModel!.day;
dataModel.hour = timeModel!.hour;
dataModel.minute = timeModel!.minute;
dataModel.second = timeModel!.second;
//sport type
dataModel.sportType = sportType;
//target type
dataModel.targetType = targetType;
//target value
datModel.targetValue = targetValue;

10.3App Initiate data exchange method

  • App start the movement

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appStartSportCommand:dataModel
  startCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The movement is launched successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //Movement launch failed
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appStartSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The movement is launched successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //Movement launch failed
     }
};
  • App Initiate a motion pause

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appPauseSportCommand:dataModel
  pauseCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //Movement paused successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //Movement Pause Failed
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appPauseSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //Movement paused successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //Movement Pause Failed
     }
};
  • App Initiate exercise recovery

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appRestoreSportCommand:dataModel
  appRestoreCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //sports recovery success
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //sports recovery failure
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appRestoreSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //sports recovery success
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //sports recovery failure
     }
};
  • App Initiate motion data exchange process

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appIngSportCommand:dataModel
  appIngCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //Movement data exchange successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //Movement data exchange failed
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appIngSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //Movement data exchange successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //Movement data exchange failed
     }
};
  • App Initiate movement to end

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appEndSportCommand:dataModel
  appEndcallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The end of the exercise is successful
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //Failed to end the exercise
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appEndSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The end of the exercise is successful
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //Failed to end the exercise
     }
};
  • App Initiate a movement, the bracelet pauses

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appBlePauseReplyCommand:dataModel
  appBlePauseCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The sports bracelet is suspended successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //The sports bracelet failed to pause
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appBlePauseReply(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The sports bracelet is suspended successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //The sports bracelet failed to pause
     }
};
  • App Start a movement, the bracelet recovers

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appBleRestoreReplyCommand:dataModel
  appBleRestoreCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //Sports bracelet recovered successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //Sports bracelet recovery failed
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appBleRestoreReply(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //Sports bracelet recovered successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //Sports bracelet recovery failed
     }
};
  • App Start the movement, the bracelet ends

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand appBleEndReplyCommand:dataModel
  appBleEndCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //Sports bracelet ended successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //Sports bracelet end failed
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.appBleEndReply(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //Sports bracelet ended successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //Sports bracelet end failed
     }
};

10.4Ble Initiate data exchange method

  • The bracelet starts the movement

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand bleStartSportCommand:dataModel
  bleStartCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The bracelet launched the movement and started successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //The bracelet launched the movement and started failed
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.bleStartSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The bracelet launched the movement and started successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //The bracelet launched the movement and started failed
     }
};
  • The bracelet initiates a motion pause

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand blePauseSportCommand:dataModel
  blePauseCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The bracelet initiates the movement and pauses successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //The wristband fails to initiate a motion pause
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.blePauseSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The bracelet initiates the movement and pauses successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //The wristband fails to initiate a motion pause
     }
};
  • The bracelet initiates exercise recovery

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand bleRestoreSportCommand:dataModel
  bleRestoreCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The bracelet launched the exercise and recovered successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //Bracelet failed to initiate exercise recovery
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.bleRestoreSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The bracelet launched the exercise and recovered successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //Bracelet failed to initiate exercise recovery
     }
};
  • The bracelet initiates movement and stops

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand bleEndSportCommand:dataModel
  bleEndCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The bracelet starts the movement and stops successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //The wristband fails to initiate a movement to stop
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.bleEndSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The bracelet starts the movement and stops successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //The wristband fails to initiate a movement to stop
     }
};
  • The bracelet initiates a movement to exchange data

Objc:

  //dataModel Global motion data model
  [IDOFoundationCommand bleIngSportCommand:dataModel
  bleIngCallback:^(IDODataExchangeModel * _Nullable model, int errorCode) {
     if (errorCode == 0 && model.retCode == 0) {
        //The bracelet initiates a movement to exchange data successfully
     }else if (model.retCode == 2) {
       //battery is too low
     }else {
       //The bracelet initiates a movement and fails to exchange data
     }
}];

Swift:

//dataModel Global motion data model
IDOFoundationCommand.bleIngSportCommand(dataModel) { (model, errorCode) in
     if errorCode == 0 && model.retCode == 0{
        //The bracelet initiates a movement to exchange data successfully
     }else if model.retCode == 2 {
       //battery is too low
     }else {
       //The bracelet initiates a movement and fails to exchange data
     }
};

10.5 Demo Data exchange function entry

Copyright © 2015-2020 IDO. All rights reserved. all right reserved,powered by GitbookModify Date: 2023-12-18 10:04:13

results matching ""

    No results matching ""