HS2S
WorkFlow
Scan and connect HS2s scale.
Get device info, if don't have any user info, create a user info and take a measure directly.
Get user info, if have this user info, get data stored in HS2S. if don't have this user info, create a user info.
Get offline data and take measurement.
Connection to device
1.Listen to device notify
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(DeviceDiscover:) name:HS2SDiscover object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(DeviceConnectFail:) name:HS2SConnectFailed object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(DeviceConnect:) name:HS2SConnectNoti object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(DeviceDisConnect:) name:HS2SDisConnectNoti object:nil];
[HS2SController shareIHHS2SController];
2.Scan for HS2S devices
[[ScanDeviceController commandGetInstance] commandScanDeviceType:HealthDeviceType_HS2S];
3.Connect to HS2S devices
[[ConnectDeviceController commandGetInstance] commandContectDeviceWithDeviceType:HealthDeviceType_HS2S andSerialNub:deviceMac];
API reference
Get the device info
/**
*Get HS2S DeviceInfo (After the HS2S device is successfully connected, the interface must be called to synchronize the device time. Otherwise, the offline data measurement time error will be caused)
* @param deviceInfo Contains device IDPS info(FirmwareVersion,HardwareVersion,Manufacture,ModelNumber,ProtocolString,SerialNumber),user count ,HS2S current unit(1:Kg,2:LB,3:ST),battery
* Example:
* {
Battary = 70;
DeviceName = HS2S;
FirmwareVersion = "0.5.4";
HardwareVersion = "1.0.0";
Manufacture = iHealth;
ModelNumber = "HS2S 11070";
ProtocolString = "com.jiuan.BFSV22";
SerialNumber = 004D320CA04D;
Unit = 1;
UserCount = 1;
* }
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandGetHS2SDeviceInfo:(DisposeHS2SDeviceInfo)deviceInfo DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Get the battery info
/**
*Get HS2S battery
* @param battary HS2Sbattery [Range:0~100]%
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandGetHS2SBattery:(DisposeHS2SBatteryBlock)battary DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Set the unit of device
/**
* SetUnit
* Import parameter:
* @param tempUnit -Unit displayed on HS2S: HSUnit_Kg、HSUnit_LB、HSUnit_ST。
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandSetHS2SUnit:(HSUnit)tempUnit result:(DisposeHS2SResult)result DisposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Get the info of user in HS2S
/**
* Get HS2S UserInfo
* Return parameters:
* @param userInfo NSDictionary type,contains: UserCount and UserInfo
* Example:
* {
UserCount = 1;
UserInfo =(
{
"UserInfo_Age" = 20;
"UserInfo_Height" = 100;
"UserInfo_CreatTS" = 1558406503; //User creat time
"UserInfo_ID" = <69486561 6c746831 32333435 36373839>;
"UserInfo_ImpedanceMark" = 1; //0 Don't measure 1 Measure
"UserInfo_SEX" = 1; //0 female 1 male,
"UserInfo_Weight" = "79.5";
"UserInfo_Fitness" = 1; //0:Don't fitness 1:fitness
}
);
* }
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandGetHS2SUserInfo:(DisposeHS2SUserInfo)userInfo DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Create or update user info in device
/**
* Create or Update HS2S UserInfo (The HS2S device only supports the creation of a maximum of 8 users)
* Import parameter:
* @param user (user information must be entered in accordance with the reference range, otherwise it may be impossible to measure the accurate body fat information)
* contains:
* hs2SUserID:NSData type,The user ID must be 16 bytes or the user creation fails,
* createTS:NSInteger type,The unit of time is seconds ,
* weight:NSNumber type,range:20-150kg,
* age:NSNumber type,range:18-99 years,
* height:NSNumber type,range:90-220cm
* sex:0 female 1 male,
* impedanceMark: 0 Don't measure 1 Measure
* fitnessMark:0 Don't fitness 1:fitness
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandUpdateHS2SUserInfoWithUser:(HealthUser*)user result:(DisposeHS2SResult)result DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Delete user info in device
/**
* Delete HS2S User
* Import parameter:
* @param userID :NSData type,The user ID must be 16 bytes or the user creation fails,
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandDeleteHS2SUserWithUserID:(NSData*)userID result:(DisposeHS2SResult)result DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Get off line data count
/**
* Get HS2S Memory data count
* Import parameter:
* @param userID :NSData type,The user ID must be 16 bytes or the user creation fails,
* Return parameters:
* @param count NSNumber Type,memory count
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandGetHS2SMemoryDataCountWithUserID:(NSData*)userID memoryCount:(DisposeHS2SMemoryCountBlock)count DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Get offline data
/**
* Get HS2S Memory data
Lean mass calculation formula: result = weight * (1 - body fat percentage)
BMI calculation formula: result = weight / (height * height)
BMR calculation formula:
If no fat is measured
{
For men:
P = 13.397* weight + 4.799* height – 5.677* age + 88.362
For women:
P = 9.247* weight + 3.098* height – 4.330* age + 447.593
If the user enters the sport level in the app, correct the P:
Sport level=1, P = P*1.0
Sport level = 2, P = P*1.05
Sport level = 3, P = P*1.10
}
When fat is measured:
{
P=370 + 21.6*Lean mass(kg )
}
* Import parameter:
* @param userID :NSData type,The user ID must be 16 bytes or the user creation fails,
* Return parameters:
* @param memoryData NSArray Type,memory data
* Example:
* (
{
DeviceMac = 004D320CA04D; //device mac
HS2SBodyAge = 10; //body age
HS2SBodyWaterPercentAge = "39.3"; //body moisture rate
HS2SBoneMineral = "1.9"; //Bone salt
HS2SFatControl = 0; //Fat Control
HS2SFatWeight = 0; //Fat weight
HS2SFitness = 1; //0:Don't fitness 1:fitness
HS2SImpedance = (); //NSArray type ,Impedance
HS2SIsRightTS = 1; //0:Incorrect, unsynchronized time on measured data 1:Correct, synchronize the measured data after the time
HS2SMeasureTS = "2019-05-18 08:56:38 +0000";
HS2SMuscle = "13.1"; //Muscle mass
HS2SMuscleControl = 0; //Muscle Control
HS2SProteinPercentAge = "9.8"; //Protein rate
HS2SResultBodyFatPercentAge = "44.2"; //Body fat rate
HS2SBodyWeightFlag = 0; //0:Body fat was not measured 1:Measure body fat
HS2SSkeletalMuscle = 0; //Skeletal Muscle
HS2SStandardWeight = 0; //Standard Weight
HS2SVFR = 29; //Visceral fat grade
HS2SWeightControl = 0; //Weight Control
HS2SWeigthResult = "79.5";
"UserInfo_Age" = 18;
"UserInfo_Height" = 100;
"UserInfo_SEX" = 1;
}
* )
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandGetHS2SMemoryDataWithUserID:(NSData*)userID memoryData:(DisposeHS2SMemoryDataBlock)memoryData DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Delete offline data
/**
* Delete HS2S Memory data
* Import parameter:
* @param userID :NSData type,The user ID must be 16 bytes or the user creation fails,
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandDeleteHS2SMemoryDataWithUserID:(NSData*)userID result:(DisposeHS2SResult)result DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Get Anonymous Memory data count
/**
* Get HS2S Anonymous Memory data count
* Return parameters:
* @param count memory count
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandGetHS2SAnonymousMemoryDataCount:(DisposeHS2SAnonymousMemoryCountBlock)count DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Get Anonymous Memory data
/**
* Get HS2S Anonymous Memory data
* Return parameters:
* @param memoryData NSArray type,Each result dictionary contains: HS2SIsRightTS(Time correctness identification,0:Incorrect, unsynchronized time on measured data 1:Correct, synchronize the measured data after the time),HS2SMeasureTS(Measure Time,NSdate type),HS2SWeigthResult(Weigth Result)
* Example:
* (
{
HS2SIsRightTS = 0; //Time correctness identification
HS2SMeasureTS = "2019-05-18 07:18:36 +0000";
HS2SWeigthResult = "43.7";
}
* )
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandGetHS2SAnonymousMemoryData:(DisposeHS2SAnonymousMemoryDataBlock)memoryData DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Delete Anonymous Memory data
/**
* Delete HS2S Anonymous Memory data
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandDeleteHS2SAnonymousMemoryData:(DisposeHS2SResult)result DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Measure
/**
* Measure HS2S Data
* Import parameter:
* @param user (user information must be entered in accordance with the reference range, otherwise it may be impossible to measure the accurate body fat information)
Lean mass calculation formula: result = weight * (1 - body fat percentage)
BMI calculation formula: result = weight / (height * height)
BMR calculation formula:
If no fat is measured
{
For men:
P = 13.397* weight + 4.799* height – 5.677* age + 88.362
For women:
P = 9.247* weight + 3.098* height – 4.330* age + 447.593
If the user enters the sport level in the app, correct the P:
Sport level=1, P = P*1.0
Sport level = 2, P = P*1.05
Sport level = 3, P = P*1.10
}
When fat is measured:
{
P=370 + 21.6*Lean mass(kg )
}
* contains:
* userType : 0 guest 1 normal
* hs2SUserID:NSData type,The user ID must be 16 bytes or the user creation fails,
* createTS:NSInteger type,The unit of time is seconds ,
* weight:NSNumber type,range:20-150kg,
* age:NSNumber type,range:18-99 years,
* height:NSNumber type,range:90-220cm
* sex:0 female 1 male,
* impedanceMark: 0 Don't measure 1 Measure
* fitnessMark:0 Don't fitness 1:fitness
* Return parameters:
* @param unStableWeight - Current weight, (Kg) [Value Range:0~180]
* @param stableWeight - Stable weight, (Kg) [Value Range:0~180]
* @param weightAndBodyInfo Weight and body fat information guest user not return weightAndBodyInfo
* Example:
* {
DeviceMac = 004D320CA04D; //device mac
HS2SBodyAge = 10; //body age
HS2SBodyWaterPercentAge = "39.3"; //body moisture rate
HS2SBoneMineral = "1.9"; //Bone salt
HS2SFatControl = 0; //Fat Control
HS2SFatWeight = 0; //Fat weight
HS2SFitness = 1; //0:Don't fitness 1:fitness
HS2SImpedance = (); //NSArray type ,Impedance
HS2SMeasureTS = "2019-05-18 08:56:38 +0000";
HS2SMuscle = "13.1"; //Muscle mass
HS2SMuscleControl = 0; //Muscle Control
HS2SProteinPercentAge = "9.8"; //Protein rate
HS2SResultBodyFatPercentAge = "44.2"; //Body fat rate
HS2SBodyWeightFlag = 0; //0:Body fat was not measured 1:Measure body fat
HS2SSkeletalMuscle = 0; //Skeletal Muscle
HS2SStandardWeight = 0; //Standard Weight
HS2SVFR = 29; //Visceral fat grade
HS2SWeightControl = 0; //Weight Control
HS2SWeigthResult = "79.5";
"UserInfo_Age" = 18;
"UserInfo_Height" = 100;
"UserInfo_SEX" = 1;
* }
* @param measureFinish If HS2S is measuring weight, the call to the online measurement interface will fail at the beginning, and the call to the interface will succeed when the return measurement is completed.
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandStartHS2SMeasureWithUser:(HealthUser*)user weight:(DisposeHS2SUnStableWeight)unStableWeight stableWeight:(DisposeHS2SStableWeight)stableWeight weightAndBodyInfo:(DisposeHS2SWeightAndBodyInfo)weightAndBodyInfo disposeHS2SMeasureFinish:(DisposeHS2SMeasureFinish)measureFinish DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Reset device
/**
* Reset HS2S device
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandResetHS2SDevice:(DisposeHS2SResult)result DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
HS2S Light up bluetooth
/**
* HS2S Light up bluetooth
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandSetHS2SDeviceLightUp:(DisposeHS2SResult)result DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Enter heart rate measurement mode
(hardwareVersion must be greater than or equal to 6.0.0)
/**
* HS2S Enter heart rate measurement mode
* Return parameters:
* @param result
* heartResultDic:{
HeartValue = 0;
ResultStatus = 1;(0: success,
1: failed 1, no real-time data received in 6s
2: Failure 2, the algorithm judges that the user is weighing down
3: Failure 3, calculation failed
4: Failure 4: 30s timeout)
}
* @param status ( 1: User on the scale
2: User referred below
3: The user's heartbeat signal is detected)
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandEnterHS2SHeartRateMeasurementMode:(DisposeHS2SHeartResult)result measurementStatus:(DisposeHS2SMeasurementStatus)status DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Exit heart rate measurement mode
(hardwareVersion must be greater than or equal to 6.0.0)
/**
* HS2S Exit heart rate measurement mode
* Return parameters:
* @param result YES:Success NO:Failed
* @param disposeErrorBlock - error code
* Error code definition:
* refer to “error” : HS2S error instruction.
*/
-(void)commandExitHS2SHeartRateMeasurementMode:(DisposeHS2SResult)result DiaposeErrorBlock:(DisposeHS2SErrorBlock)disposeErrorBlock;
Disconnect device
/**
Disconnect current device
*/
-(void)commandDisconnectDevice;