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/bg5.md | 195 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 libs/ihealth-sdk/doc/bg5.md (limited to 'libs/ihealth-sdk/doc/bg5.md') diff --git a/libs/ihealth-sdk/doc/bg5.md b/libs/ihealth-sdk/doc/bg5.md new file mode 100644 index 0000000..38493ad --- /dev/null +++ b/libs/ihealth-sdk/doc/bg5.md @@ -0,0 +1,195 @@ +# BG5 Workflow + +## Import BG5 Module + +```js +import { + BG5Module, + BGProfileModule +} from '@ihealth/ihealthlibrary-react-native'; +``` + +## APIs + +### Add and remove listener + +```js +// add +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + console.log(event); +}); + +// remove +notifyListener.remove(); +``` + +### set time + +If you use new bg5 or it has not been used for a long time. You should sync current time with bg5. + +```js +BG5Module.setTime(mac); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_SET_TIME) { + console.log("set time"); + } +}); +``` + +### set unit + +The API can change the unit of the bg5 display. + +```js +// 1: mmol/L 2: mg/dL +BG5Module.setUnit(mac, 1); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_SET_UNIT) { + console.log("set unit"); + } +}); +``` + +### get bottle information from barcode + +When you scan the barcode at the top of bottle, you can get a string. Pass the string to this API, you can get bottle id, Number of the strips and expire day. + +```js +BG5Module.getBottleInfoFromQR(QRCode); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_CODE_ANALYSIS) { + console.log(event[BGProfileModule.STRIP_NUM_BG]); + console.log(event[BGProfileModule.STRIP_EXPIRETIME_BG]); + console.log(event[BGProfileModule.BOTTLEID_BG]); + } +}); +``` + +### set bottle id + +```js +BG5Module.getBottleInfoFromQR(QRCode); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_SET_BOTTLEID) { + console.log("Set bottleID"); + } +}); +``` + +### get bottle id + +```js +BG5Module.getBottleInfoFromQR(QRCode); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_GET_BOTTLEID) { + console.log(event[BGProfileModule.GET_BOTTLEID]); + } +}); +``` + +### Set bottle message + +When you use a new bg5 device or you open a new strip bottle, must set bottle message to bg5 device. + +```js +/** + * mac device mac address + * stripType 1: GOD, 2: GDH + * measureType 1: measure with real blood, 2: measure with control solution + * barcode for GOD strip, you can scan barcode at top of the bottle. for GDH strip, set null. + * unusedStrip unused strip. + * expireDay check the expire day on the bottle, and stirp is expired after opening for 90 days. + */ +BG5Module.setBottleMessage(mac, 1, 1, QRCode, 25, "2027-07-15"); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_SET_BOTTLEMESSAGE) { + console.log("set bottle message success"); + } +}); +``` + +### get bottle message + +```js +BG5Module.getBottleMessage(mac); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_GET_BOTTLEMESSAGE) { + console.log(event[BGProfileModule.GET_EXPIRECTIME]); + console.log(event[BGProfileModule.GET_USENUM]); + } +}); +``` + +### start a measurement + +```js +// * measureType 1: measure with real blood, 2: measure with control solution +BG5Module.startMeasure(mac, 1); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_STRIP_IN) { + console.log("strip in"); + + } else if (event.action === BGProfileModule.ACTION_STRIP_OUT) { + console.log("strip out"); + + } else if (event.action === BGProfileModule.ACTION_GET_BLOOD) { + console.log("analysis blood"); + + } else if (event.action === BGProfileModule.ACTION_ONLINE_RESULT_BG) { + console.log(event[BGProfileModule.ONLINE_RESULT_BG]); + console.log(event[BGProfileModule.DATA_ID]); + } +}); +``` + +### get data stored in the bg5 device + +```js +BG5Module.getOfflineData(mac); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_GET_OFFLINEDATA_COUNT) { + console.log(event[BGProfileModule.GET_OFFLINEDATA_COUNT]); + console.log(event[BGProfileModule.GET_OFFLINEDATA]); + } +}); +``` + +### delete the data stored in the bg5 device + +```js +BG5Module.deleteOfflineData(mac); + +// response +notifyListener = DeviceEventEmitter.addListener(BG5Module.Event_Notify, (event) => { + if (event.action === BGProfileModule.ACTION_DELETE_OFFLINEDATA) { + console.log("delete data"); + } +}); +``` + +### keep link with phone + +The BG5 use regular bluetooth communicate with phone. For save the power, if there is no communication, bg5 will turn off. +The api is used to keep link with phone. + +```js +BG5Module.holdLink(mac); +``` \ No newline at end of file -- cgit