From d6d9a09d505d11148599a95a5be3e1351edbe0ac Mon Sep 17 00:00:00 2001 From: hc Date: Mon, 13 Apr 2026 15:17:52 +0800 Subject: Local iHealth SDK, device detail screen, iOS event fixes --- libs/ihealth-sdk/doc/hs2s.md | 307 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 libs/ihealth-sdk/doc/hs2s.md (limited to 'libs/ihealth-sdk/doc/hs2s.md') diff --git a/libs/ihealth-sdk/doc/hs2s.md b/libs/ihealth-sdk/doc/hs2s.md new file mode 100644 index 0000000..b72995a --- /dev/null +++ b/libs/ihealth-sdk/doc/hs2s.md @@ -0,0 +1,307 @@ +# HS2S Workflow + +## import HS2S module + +```js +import { + HS2SModule, + HS2SProfileModule +} from '@ihealth/ihealthlibrary-react-native'; +``` + +## APIs + +### add and remove listener + +```js +// add +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + console.log(event); +}); + +// remove +notifyListener.remove(); +``` + +### get device information + +```js +HS2SModule.getDeviceInfo(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_get_device_info") { + console.log(event["battery"]); + console.log(event["unit_current"]); + console.log(event["user_count"]); + } +} +``` + +### get device battery + +```js +HS2SModule.getBattery(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_get_battery_hs") { + console.log(event["battery_hs"]); + } +} +``` + +### set Unit + +```js +HS2SModule.setUnit(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_set_unit") { + console.log(event["result"]); + } +} +``` + +### get user information + +```js +HS2SModule.getUserInfo(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_get_user_info") { + console.log(event["user_info-count"]); + let array = event["user_info_array"]; + console.log(array["body_building"]); + console.log(array["impedance"]); + console.log(array["height"]); + console.log(array["age"]); + console.log(array["gender"]); + console.log(array["weight"]); + console.log(array["create_time"]); + console.log(array["user_id"]); + } +} +``` + +### create user + +```js +HS2SModule.updateUserInfo(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_create_or_update_user_info") { + console.log(event["result"]); + } +} +``` + +### delete user + +```js +HS2SModule.deleteUser(mac, userId); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_delete_user_info") { + console.log(event["result"]); + } +} +``` + +### get the number of offline data + +```js +HS2SModule.getMemoryDataCount(mac, userId); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_history_data_num") { + console.log(event["history_data_count"]); + } +} +``` + +### get offline data + +```js +HS2SModule.getMemoryData(mac, userId); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_history_data") { + let arr = event["history_data"]; + arr.forEach(function(result) { + console.log(result["fat_weight"]); + console.log(result["fat_control"]; + console.log(result["weight_control"]; + console.log(result["standard_weight"]; + console.log(result["skeletal_muscle_mass"]; + console.log(result["body_water_rate"]; + console.log(result["muscle_mas"]; + console.log(result["instruction_type"]; + console.log(result["body_building"]; + console.log(result["height"]; + console.log(result["gender"]; + console.log(result["muscle_control"]; + console.log(result["physical_age"]; + console.log(result["visceral_fat_grade"]; + console.log(result["protein_rate"]; + console.log(result["bone_salt_content"]; + console.log(result["visceral_fat_grade"]; + console.log(result["measure_time"]; + console.log(result["age"]; + console.log(result["impedance"]; + console.log(result["weight"]; + }) + } +} +``` + +### delete offline data by user id + +```js +HS2SModule.deleteMemoryData(mac, userId); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_delete_history_data") { + console.log(event["result"]); + } +} +``` + +### get the number of anonymous offline data + +```js +HS2SModule.getAnonymousMemoryDataCount(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_anonymous_data_num") { + console.log(event["anonymous_data_count"]); + } +} +``` + +### get anonymous offline data + +```js +HS2SModule.getAnonymousMemoryData(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_anonymous_data") { + let arr = event["history_data"]; + arr.forEach(function(result) { + console.log(result["instruction_type"]; + console.log(result["body_building"]; + console.log(result["height"]; + console.log(result["gender"]; + console.log(result["measure_time"]; + console.log(result["age"]; + console.log(result["impedance"]; + console.log(result["weight"]; + }) + } +} +``` + +### delete anonymous offline data + +```js +HS2SModule.deleteAnonymousMemoryData(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_delete_anonymous_data") { + console.log(event["result"]); + } +} +``` + +### start a online measurement + +The API is asyn function. It will return message until finish measurement. + +```js +HS2SModule.measure(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_specify_users") { + console.log(event["result"]); + // 1: success, 0: failure + + } else if (event.action === "action_online_real_time_weight") { + console.log(event["weight"]); + + } else if (event.action === "action_online_result") { + console.log(event["weight"]); + + } else if (event.action === "action_body_fat_result") { + let bodyFat = event["data_body_fat_result"]; + let fat_weight = bodyFat["fat_weight"]; + let fat_control = bodyFat["fat_control"]; + let weight_control = bodyFat["weight_control"]; + let standard_weight = bodyFat["standard_weight"]; + let skeletal_muscle_mass = bodyFat["skeletal_muscle_mass"]; + let body_water_rate = bodyFat["body_water_rate"]; + let muscle_mas = bodyFat["muscle_mas"]; + let instruction_type = bodyFat["instruction_type"]; + let body_building = bodyFat["body_building"]; + let height = bodyFat["height"]; + let gender = bodyFat["gender"]; + let muscle_control = bodyFat["muscle_control"]; + let physical_age = bodyFat["physical_age"]; + let visceral_fat_grade = bodyFat["visceral_fat_grade"]; + let protein_rate = bodyFat["protein_rate"]; + let bone_salt_content = bodyFat["bone_salt_content"]; + let visceral_fat_grade = bodyFat["visceral_fat_grade"]; + let measure_time = bodyFat["measure_time"]; + let age = bodyFat["age"]; + let impedance = bodyFat["impedance"]; + let weight = bodyFat["weight"]; + + } else if (event.action === "action_measure_finish_at_critical") { } +}); +``` + +### start heart rate measurement mode + +```js +HS2SModule.resetDevice(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === HS2SProfileModule.ACTION_HS2S_MEASURE_HEARTRATE) { + + } +} +``` + +### stop heart rate measurement mode + +```js +HS2SModule.resetDevice(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === HS2SProfileModule.ACTION_HS2S_EXIT_MEASURE_HEARTRATE_STATUS) { + // {"status":0,"heartrate":78} + console.log(event.message); + } +} +``` + +### reset device + +```js +HS2SModule.resetDevice(mac); + +notifyListener = DeviceEventEmitter.addListener(HS2SModule.Event_Notify, (event) => { + if (event.action === "action_restore_factory_settings") { + console.log(event["result"]); + } +} +``` + +### disconnect device + +```js +HS2SModule.disConnect(mac); +``` + +### get all connected devices + +```js +HS2SModule.getAllConnectedDevices(); +``` -- cgit