CGM phone command (cgmPhoneCommand)
Function table: supportCgmPhoneCommand
Reply model: IDOCgmPhoneCommandModel.
Each call returns a business result; on failure use errCode / error or isSuccess.
Phone CGM reconnect: call
disconnectCgmfirst; after success, connect CGM on the phone side.
Four operations (Cmds)
| API | Description |
|---|---|
setCgmKeyAndDevice |
Persist AES key + CGM BLE device name |
deleteCgmKeyAndDevice |
Delete stored key and device name |
connectCgm |
Watch runs CGM connect flow |
disconnectCgm |
Disconnect CGM |
setCgmKeyAndDevice
iOS
Cmds.setCgmKeyAndDevice(key: "your-aes-key", deviceName: "MyCGM").send { result in
switch result {
case .success(let model):
if model?.isSuccess == true { /* OK */ }
else if let code = model?.errCodeEnum { print(code.symbolName) }
case .failure: break
}
}
Android
Cmds.setCgmKeyAndDevice("your-aes-key", "MyCGM").send { response ->
val model = response.data
if (model?.isSuccess != true) {
IDOCgmPhoneCommandErrCode.symbolName(model?.errCode ?: -1)
}
}
deleteCgmKeyAndDevice
iOS — Cmds.deleteCgmKeyAndDevice().send { ... }
Android — Cmds.deleteCgmKeyAndDevice().send { ... }
connectCgm
iOS
Cmds.connectCgm().send { result in
switch result {
case .success(let model):
if model?.isSuccess == true { /* OK */ }
else if let code = model?.errCodeEnum { print(code.symbolName) }
case .failure: break
}
}
Android
Cmds.connectCgm().send { response ->
val model = response.data
if (model?.isSuccess != true) {
IDOCgmPhoneCommandErrCode.symbolName(model?.errCode ?: -1)
}
}
disconnectCgm
iOS — Cmds.disconnectCgm().send { ... }
Android — Cmds.disconnectCgm().send { ... }
Reply fields (Model)
| Property | Type | Description |
|---|---|---|
| key | String? | Input for setCgmKeyAndDevice |
| deviceName | String? | Input for setCgmKeyAndDevice |
| errCode | Int | Business error code, 0 = success |
| error | String? | Error symbol when failed, e.g. ERR_BUSY |
| isSuccess | Boolean | errCode == 0 (extension) |
Error codes
iOS IDOCgmPhoneCommandErrCode |
Android | Description | Typical API |
|---|---|---|---|
.success |
SUCCESS |
Success | all |
.invalidKey |
INVALID_KEY |
Invalid AES key | setCgmKeyAndDevice |
.invalidDeviceName |
INVALID_DEVICE_NAME |
Invalid device name | setCgmKeyAndDevice |
.storageFail |
STORAGE_FAIL |
Storage I/O failed | setCgmKeyAndDevice / deleteCgmKeyAndDevice |
.noKey |
NO_KEY |
Connect without key | connectCgm |
.busy |
BUSY |
Connect in progress | connectCgm |
.scanTimeout |
SCAN_TIMEOUT |
CGM scan timeout | connectCgm |
.pairFlag |
PAIR_FLAG |
Pairing error | connectCgm |
.connectFail |
CONNECT_FAIL |
BLE connect failed | connectCgm |
.keyReadFail |
KEY_READ_FAIL |
Read key failed | connectCgm |
.protocolFail |
PROTOCOL_FAIL |
CGM interaction failed | connectCgm |
.disconnectFail |
DISCONNECT_FAIL |
Disconnect failed | disconnectCgm |