-
Notifications
You must be signed in to change notification settings - Fork 11
GoFIT SDK iOS Application Programming Interface Specifications
The present document specifies the GoFIT SDK - iOS Application Programming Interfaces (API's).
- 裝置 (Device)
- 本 SDK 之目標物、連接對象;為手錶、手環。
- API's
- Application Programming Interfaces.
- Particularly, in the present document,
API's(Application Programming Interfaces) 特指 function / method 等可呼叫之類型的介面
- Data Object
- 在 API's 之外,還有其所關聯到的資料物件,或資料結構。In the present document, they are called Data Object (s). 為 data model.
- 健康資料 (Fitness Data)
- 即裝置 (device) 內監測使用者活動所儲存下來之資料。一般而言,包括步數、距離、卡路里、心率、睡眠等等.
- 以 Fitness Data Objects (其下分成三種 Data Objects) 來呈現
- SDK vs. Client
- SDK 指的即為本文件所描述的程式套件
- Client 特指使用本文件所描述的程式套件之客戶端 (i.e., 本 SDK 的 user / caller)
本 SDK 以 Singleton Pattern 形式呈現並提供所需服務 / 功能. 各 method 若有 callback 者, 則在 callback 完成前, 都不允許再次呼叫 (本 SDK 非 reentrant, 非 multi-threaded 使用).
```objective-c
+ (GoFIT_SDK*)shareInstance;
```
- 功能
- 取得 GoFIT SDK singleton
```objective-c
- (void)instantiate:(NSString*)certificate
andLicense:(NSString*)license
success:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 建構 GoFIT SDK singleton instance
- 參數
- **certificate** : GOLiFE offered certificate (sequence of bytes); mandatory.
- **license** : License (sequence of bytes). Will download license from GOLiFE server (i.e., AAA procedure will be executed, and authorized license, if passed, will be returned via **success()** callback) in case this parameter is null. Client shall store received license -- otherwise this license download operation will occur each time this singleton is initiated (and thus network is required every time). 另一種情況是 **license** 雖不為 null,但已過期,則此時 SDK 本身也會重新向 server 進行 renewal 程序,若成功也會帶回新的 SDK License 給 Client 儲存。
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- responseObject: 若不為 null,則帶著更新的 SDK License (型態是 `<NSString*>) 傳回給 Client 儲存。
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 601 (DEVICE_NETWORK_NOT_ENABLE),手機網路未開啟
- code = 621 (SDK_AUTHENICATION_FAIL),授權失敗
```objective-c
- (void)doScanDevice:(void (^)(NSDictionary* device))success
completion:(void (^)(ResponseInfo *resp))completion
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 掃瞄裝置
- 參數
- (callback) **success** : 會不斷更新,每掃描到一個新的 device 即 callback 帶回一個 `<NSDictionary>` of `<key> : <value>` pair where :
- **UUID** : `objectForKey:@"UUID"`
- **productID** : `objectForKey:@"productID"`
- (callback) **completion** : 掃描完成,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示掃瞄完成,並帶回一個 array of devices 於 responseObject 內
- **responseObject** : `<NSDictionary>` of `<key> : <value>` pair where :
- **UUID** : `objectForKey:@"UUID"`
- **productID** : `objectForKey:@"productID"`
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- Timeout : 10 秒 (10 秒後回傳 scan 結果)
```objective-c
- (void)doNewPairing:(NSString*)uuidStr
andProductID:(NSString*)productID
success:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 新配對裝置,不帶有配對碼的連線機制
- 參數
- **uuidStr** : 欲連線裝置之 UUID。必須為之前透過 [Scan Device](#scan-device) 所回傳者。
- **productID** : 欲連線裝置之 Product ID。必須為之前透過 [Scan Device](#scan-device) 所回傳者,且與當時回傳之 **UUID** 成對 (即此時傳入之上述 **uuidStr**)。
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示連接成功,回傳一組配對資訊
- responseObject : `<NSDictionary>` of `<key> : <value>` pair where :
- **pairingCode** : `objectForKey:@"pairingCode"`,為一 NSString object,帶著裝置螢幕顯示之四位字元 (ASCI value 0x30 ~ 0x39。字串的字元依序為裝置上顯示之順序)。
- **pairingTime** : `objectForKey:@"pairingTime"`,為一 NSString object,配對碼於裝置上生成的時間 (裝置螢幕不顯示)
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- Timeout : 5 秒 (若 5 秒內連不上目標裝置,則 callback fail)
```objective-c
- (void)confirmPairingCode:(NSString*)pairingCode
andPairingTime:(NSString*)pairingTime
andProductID:(NSString*)productID
success:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 確認輸入的配對碼,完成裝置配對機制
- 參數
- **pairingCode** : 輸入裝置螢幕顯示之四字元配對碼
- **pairingTime** : 於上述 [New Pairing Device](#new-pairing-device) 之 `success` callback 取得之 pairingTime
- **productID** : 欲連線裝置之 Product ID。必須為之前透過 [Scan Device](#scan-device) 所回傳者,且與當時回傳之 **UUID** 成對。此參數之值應亦等同於呼叫 [New Pairing Device](#new-pairing-device) 時所傳入者。
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示配對成功,連接好裝置
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- code = 13 (DEVICE_DISCONNECT),裝置斷線
- code = 14 (DEVICE_PAIRING_FAIL),裝置配對碼匹配錯誤
- Timeout : 5 秒 (若 5 秒內連不上目標裝置,則 callback fail)
```objective-c
- (void)doConnectDevice:(NSString*)uuidStr
andProductID:(NSString*)productID
andPairingCode:(NSString*)pairingCode
andPairingTime:(NSString*)pairingTime
success:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 帶有配對碼的連線機制,適合已配對過的裝置
- 傳入裝置之 `UUID` 與 `pairingCode`、`pairingTime` 以連接裝置
- 此 API 會連帶執行手環時間校正功能
- 參數
- **uuidStr** : 裝置之 UUID. 可為 null, 但將較為耗時, 請於為了無痛跨系統 (手機; e.g., Android ⇒ iOS) 時使用
- **productID** : 欲連線裝置之 Product ID。必須為之前透過 [Scan Device](#scan-device) 所回傳者,且與當時回傳之 **UUID** 成對 (即此時傳入之上述 **uuidStr**)。
- **pairingCode** : 裝置配對碼
- **pairingTime** : 裝置配對時間戳記
- **(callback) success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示連接成功
- **(callback) failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- code = 14 (DEVICE_PAIRING_FAIL),裝置配對碼匹配錯誤
- Timeout : 5 秒 (若 5 秒內連不上目標裝置,則 callback fail)
```objective-c
- (void)doSyncFitnessData:(void (^)(int progressValue))progress
success:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 同步手環上所有健康資料
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- 參數
- (callback) **progress** : 表示目前 sync 進度 (單純為一累進數值; 無)
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object),其中 :
- **responseObject** : `<NSDictionary>` of `<key> : <value>` pair where :
- `Step Data` : `objectForKey:@"stepArray"` [Array of `Step Fitness Data Object`s](#fitness-data-objects)
- `Sleep Data` : `objectForKey:@"sleepArray"` [Array of `Sleep Fitness Data Object`s](#fitness-data-objects)
- `Heart Rate Data` : `objectForKey:@"hrArray"` [Array of `Heart Rate Fitness Data Object`s](#fitness-data-objects)
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- code = 13 (DEVICE_DISCONNECT),裝置未連線
- code = 14 (DEVICE_PAIRING_FAIL),裝置配對碼匹配錯誤
- code = 602 (SYNC_IS_ALREADY_START),先前同步的裝置尚未完成,無法再執行一次同步 (本 SDK 不支援 reentrancy 機制)
- Timeout : 15 秒 (若裝置無回應,15 秒後會 callback fail)
```objective-c
- (void)doSetSetting:(NSArray*)settings
success:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 設定手環功能
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- 參數
- settings : [Array (variable length) carrying selected object types defined in `Setting Object`](#setting-object)
- 本 `settings` array 內只需填入欲設定的 setting objects
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示設定成功
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- code = 13 (DEVICE_DISCONNECT),裝置未連線
- code = 14 (DEVICE_PAIRING_FAIL),裝置配對碼匹配錯誤
- code = 18 (BLE_SETTING_FORMAT_ERROR),設定格式錯誤
- code = 602 (SYNC_IS_ALREADY_START),先前同步的裝置尚未完成,無法執行設定 (本 SDK 不支援 reentrancy 機制)
- Timeout : 15 秒 (若裝置無回應,15 秒後會 callback fail)
```objective-c
- (void)doClearDeviceData:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 清除裝置內之健康資料 (通常用在已經與裝置 / 手環完成 [資料同步 (Get Fitness Data)](#get-fitness-data)
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- 參數
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示清除成功
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- code = 13 (DEVICE_DISCONNECT),裝置未連線
- code = 14 (DEVICE_PAIRING_FAIL),裝置配對碼匹配錯誤
- code = 602 (SYNC_IS_ALREADY_START),先前同步的裝置尚未完成,無法執行此指令 (本 SDK 不支援 reentrancy 機制)
- Timeout : 15 秒 (若裝置無回應,15秒後會 callback fail)
```objective-c
- (void)doInitialDevice:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 初始化裝置內之資料
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- 參數
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示清除成功
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- Cause
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- code = 13 (DEVICE_DISCONNECT),裝置未連線
- code = 14 (DEVICE_PAIRING_FAIL),裝置配對碼匹配錯誤
- code = 602 (SYNC_IS_ALREADY_START),先前同步的裝置尚未完成,無法執行此指令 (本 SDK 不支援 reentrancy 機制)
- Timeout : 15 秒 (若裝置無回應,15秒後會 callback fail)
```objective-c
- (void)doDFU:(void (^)(int progressValue))progress
success:(void (^)(ResponseInfo *resp))success
failure:(void (^)(ResponseInfo *resp))failure;
```
- 功能
- 升級手環韌體
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- Callback
- **progress** : 目前 DFU 的進度 (百分比)
- (callback) **success** : 表示成功,回傳 [ResponseInfo](#response-info-data-object)
- code = 10 (BLE_CMD_OK),表示清除成功
- (callback) **failure** : 表示失敗,回傳 [ResponseInfo](#response-info-data-object)
- 可能失敗原因
- code = 11 (BLE_NOT_ENABLE),手機藍牙未開啟
- code = 12 (BLE_CONNECT_FAIL),連接失敗,距離太遠或藍牙訊號太弱
- code = 13 (DEVICE_DISCONNECT),裝置未連線
- code = 14 (DEVICE_PAIRING_FAIL),裝置配對碼匹配錯誤
- code = 20 (DFU_APP_MODE_ERROR),DFU 過程中發生錯誤
- code = 602 (SYNC_IS_ALREADY_START),先前同步的手環尚未完成,無法執行此指令 (本 SDK 不支援 reentrancy 機制)
- Timeout : 30 秒 (若裝置無回應,30秒後會 callback fail)
```objective-c
- (void)doDisconnectDevice;
```
- 功能
- 將目前連線之裝置斷線
```objective-c
- (BOOL)isBLEConnect;
```
- 功能
- 確認裝置目前的連線狀態
- Return
- TRUE if connected; FALSE otherwise
```objective-c
- (NSInteger)getDeviceBatteryValue;
```
- 功能
- 取得裝置電量
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- Return
- 電量 (為百分比)
```objective-c
- (NSString*)getDeviceSN;
```
- 功能
- 取得裝置之序號
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- Return
- 裝置之序號
```objective-c
- (NSString*)getDeviceMAC;
```
- 功能
- 取得裝置之 MAC Address
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- Return
- 裝置之 MAC address
```objective-c
- (NSString*)getDeviceFWVersion;
```
- 功能
- 取得裝置之韌體版本
- 需要先呼叫 [Connect Device](#connect-device) API,連接成功後才能執行此 API
- Return
- 裝置之 firmware 版本
```
- (void)reInitInstance;
```
- 功能
- 為避免一些例外情況造成 SDK instance 錯亂 (e.g., 防止 reentrant 的 lock 在異常狀態下沒有解開,造成下一個裝置無法進行連線同步),透過此方法可手動 re-inititalize SDK singleton instance
```objective-c
typedef NS_ENUM(NSUInteger, E_RESPONSE_CODE) {
// Reserverd
HTTP_REQUEST_FAIL = 0, // Http request fail
// BLE
BLE_CMD_OK = 10, // BLE command OK
BLE_NOT_ENABLE, // BLE not enable
BLE_CONNECT_FAIL, // BLE connect fail
DEVICE_DISCONNECT, // Device disconnect
DEVICE_PAIRING_FAIL, // Pairing fail
DEVICE_PAIRING_CODE_NOT_FOUND, // Pairing code not found, do new pairing first
DEVICE_ALREADY_PAIRED, // Device already paired, forget device first
DEVICE_RELEASE_PAIR_FAIL, // Release pair fail
BLE_SETTING_FORMAT_ERROR, // Setting format error
DEVICE_NOT_SUPPORT_JUMP_BOOTLOADER, // Device is not support jumping to bootloader
DFU_APP_MODE_ERROR, // DFU with App mode error
MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED, // Message type non existent or not implemented
PAIRING_NEEDED, // Pairing needed
AUTHORIZATION_NEEDED, // Authorization needed
ANCS_BONDING_FAIL, // ANCS bonding fail
START_TRANSMISSION_FAIL, // GoWatch Start transmission fail
GET_ACTIVITY_SUMMARY_FAIL, // GoWatch Get activity summary fail
GET_NMEA_FAIL, // GoWatch Get NMEA fail
DEVICE_NOT_FOUND,
WRITE_COMMAND_TO_DEVICE_TIMEOUT,
PAIRING_CODE_MISMATCH,
DEVICE_FIRMWARE_UPDATE_FAILED,
DEVICE_FIRMWARE_UPDATE_PROGRESSING,
OTHER_DEVICE_SYNCING,
// Cloud
GOLiFE_RESULT_OK = 200,
GOLiFE_RESULT_REDIRECTION_FOUND = 302,
GOLiFE_RESULT_BAD_REQUEST = 400,
GOLiFE_RESULT_UNAUTHORIZED = 401,
GOLiFE_RESULT_FORBIDDEN = 403,
GOLiFE_RESULT_NOT_FOUND = 404,
GOLiFE_RESULT_CONFLICT = 409,
GOLiFE_RESULT_SERVER_ERROR = 500,
GOLiFE_RESULT_CONNECTION_ERROR = 520,
// App
USER_CANCEL = 600, // User operation cancelled
DEVICE_NETWORK_NOT_ENABLE, // Device network is not enable
DEVICE_NETWORK_SUPPORT_ONLY_WIFI, // Only support WiFi enviorment
EMAIL_NOT_VALID, // Email format is not valid
PASSWORD_NOT_ENOUGH, // Password less than 8 characters
REGISTER_ACCOUNT_ALREADY_EXIST, // Register account already exist
LOGIN_ACCOUNT_OR_PASSWORD_ERROR, // Login account or password error
THIRD_PARTY_TYPE_ERROR, // Third party type error
COMPONENT_INITIAL_ERROR, // Component initial error
PARSER_DATA_ERROR, // Parsing data error
GET_EXCEPTION, // Get exception
WECHAT_APP_DO_NOT_EXIST, // Wechat App not exist
SOURCE_TYPE_ERROR, // data source type error
PASSWORD_NOT_THE_SAME, // Password is not the same
DEVICE_API_NOT_SUPPORT, // Device API is not supported
API_PARAMETER_ERROR, // API parameter error
DATABASE_NO_AFFECT,
SHARE_TO_QQ_NOT_SUPPORT_IMAGE_OBJECT,
CANNOT_REGISTER_RECEIVER,
WRITE_DATABASE_FAILED,
SYNC_IS_ALREADY_START
};
```
```objective-c
@interface ResponseInfo : NSObject
@property (nonatomic, retain) NSNumber * responseCode;
@property (nonatomic, retain) NSString * message;
@property (nonatomic, retain) id responseObject; // for extensions
@end
```
-
Step Fitness Data Object
@interface FitnessStep : NSObject @property (nonatomic, retain) NSNumber * timestamp; // Unix Time, i.e., number of seconds that have elapsed since 00:00:00 UTC time, 1 January 1970 @property (nonatomic, retain) NSNumber * distance; @property (nonatomic, retain) NSNumber * calories; @property (nonatomic, retain) NSNumber * steps; @end
-
Sleep Fitness Data Object
@interface FitnessSleep : NSObject @property (nonatomic, retain) NSNumber * timestamp; // Unix Time, i.e., number of seconds that have elapsed since 00:00:00 UTC time, 1 January 1970 @property (nonatomic, retain) NSNumber * score; @end
-
Heart Rate Fitness Data Object
@interface FitnessHR : NSObject @property (nonatomic, retain) NSNumber * timestamp; // Unix Time, i.e., number of seconds that have elapsed since 00:00:00 UTC time, 1 January 1970 @property (nonatomic, retain) NSNumber * pulse; @end
-
User Profile Settings Data Object
@interface DeviceSettingUserProfile : NSObject @property (nonatomic) CGFloat height; // cm @property (nonatomic) CGFloat weight; // kg @property (nonatomic) NSUInteger age; // 0 ~ 99 @property (nonatomic) CGFloat stride; // cm @property (nonatomic, retain) NSString * birthday; // yyyy-MM-dd @property (nonatomic) NSUInteger gender; // 0 : male, 1 :female @end
-
Step Goal Settings Data Object
@interface DeviceSettingStepGoal : NSObject @property (nonatomic) NSUInteger stepGoal; @end
-
System Unit Settings Data Object
@interface DeviceSettingSystemUnit : NSObject @property (nonatomic, retain) NSString * systemUnit; // metric | imperial @end
-
Time Format Settings Data Object
@interface DeviceSettingTimeFormat : NSObject @property (nonatomic, retain) NSString * timeFormat; // 12 | 24 @end
-
Wear Handedness Settings Data Object
@interface DeviceSettingHandedness : NSObject @property (nonatomic, retain) NSString * handedness; // left | right @end
-
Auto Light Up Settings Data Object
@interface DeviceSettingAutoLightUp : NSObject @property (nonatomic) BOOL enable; @end
-
Disconnect Alert Settings Data Object
@interface DeviceSettingDisconnectAlert : NSObject @property (nonatomic) BOOL enable; @end
-
Idle Alert Settings Data Object
@interface DeviceSettingIdleAlert : NSObject @property (nonatomic) BOOL enable; @property (nonatomic) NSInteger repeatDays; // bit0 : Sun // bit1 : Mon // bit2 : Tue // bit3 : Wed // bit4 : Thu // bit5 : Fri // bit6 : Sat @property (nonatomic, retain) NSString * startTimeHHMM; // 00:00 ~ 23:59 @property (nonatomic, retain) NSString * endTimeHHMM; // 00:00 ~ 23:59 @property (nonatomic) NSInteger intervalMin; // minutes @end
-
Alarm Clock Settings Data Object
@interface DeviceSettingAlarms : NSObject @property (nonatomic) BOOL enable; @property (nonatomic) NSInteger clockID; @property (nonatomic) NSInteger category; // 0 : wake up // 1 : sleep // 2 : meeting // 3 : training // 4 : dating // 5 : party // 6 : others // 7 : medicine @property (nonatomic) NSInteger repeatDays; // bit0 : Sun // bit1 : Mon // bit2 : Tue // bit3 : Wed // bit4 : Thu // bit5 : Fri // bit6 : Sat @property (nonatomic, retain) NSString * alarmEnableDate; // YYYY-MM-dd @property (nonatomic, retain) NSString * alarmTimeHHMM; // HH:mm @property (nonatomic) BOOL isActive; @property (nonatomic, retain) NSString * alarmText; @end
-
Detecting Heart Rate by Interval Settings Data Object
@interface DeviceSettingTimingDetectHR : NSObject @property (nonatomic) BOOL enable; @property (nonatomic, retain) NSString * startTimeHHMM; // 00:00 ~ 23:59 @property (nonatomic, retain) NSString * endTimeHHMM; // 00:00 ~ 23:59 @property (nonatomic) NSInteger intervalMin; // minutes @property (nonatomic) NSInteger repeatDays; // useless @end
-
Do Not Disturb Settings Data Object
@interface DeviceSettingDND : NSObject @property (nonatomic) BOOL enable; @property (nonatomic, retain) NSString * startTimeHHMM; // 00:00 ~ 23:59 @property (nonatomic, retain) NSString * endTimeHHMM; // 00:00 ~ 23:59 @property (nonatomic) NSInteger repeatDays; // useless @end
-
Display Language Settings Data Object
@interface DeviceSettingLanguage : NSObject @property (nonatomic) NSUInteger language; // 0 : TW // 1 : CN // 2 : EN // 3 : JP @end
-
Find My Band Settings Data Object
@interface DeviceSettingFindMyCare : NSObject @property (nonatomic) BOOL vibrationOnOff; @property (nonatomic) NSInteger vibrationSecond; @property (nonatomic) BOOL vibrationRepeat; @end
-
Find My Phone Settings Data Object
@interface DeviceSettingFindMyPhone : NSObject @property (nonatomic) BOOL enable; @property (nonatomic) NSInteger vibrationTime; @property (nonatomic) BOOL soundOnOff; @end
-
Heart Rate Warning Settings Data Object
@interface DeviceSettingHRWarning : NSObject @property (nonatomic) BOOL enable; @property (nonatomic) NSInteger maxValue; @property (nonatomic) NSInteger minValue; @end
-
Screen Lock Settings Data Object
@interface DeviceSettingHorizontalUnlock : NSObject @property (nonatomic) BOOL enable; @end
-
Step Fitness Data
Step Record : { timestamp : 1529924400 // UTC time : 2018, Jun, 25 11:00:00 GMT+00:00 steps : 129 // step counts distance : 102 // distance, unit : m calories : 7 // unit : 大卡 } Step Record : { timestamp : 1529925600 steps : 467 distance : 369 calories : 23 } Step Record : { timestamp : 1529926800 steps : 27 distance : 21 calories : 2 } -
Heart Rate Fitness Data
HR Record : { timestamp : 1530006834 // UTC time : 2018, Jun, 26 09:53:54 GMT+00:00 pulse : 84 // Heart Rate counts } HR Record : { timestamp : 1530006844 pulse : 83 } HR Record : { timestamp : 1530006868 pulse : 81 } -
Sleep Fitness Data
Sleep Record : { timestamp : 1529938800 // UTC time : 2018, Jun, 25 15:00:00 GMT+00:00 score : 5 // 睡眠分數:0~5,0為深眠,5為淺眠 } Sleep Record : { timestamp : 1529939400 score : 3 } Sleep Record : { timestamp : 1529940000 score : 1 }