Skip to content

17 Megnet (角度校正) ​

手機發送 sesame5 角度校正指令,校正完成後回覆成功,sesame5 主動發送 mechstatus(機械狀態)

mechStatus 細節詳見 80_mechStatus 說明

循序圖 ​

手機送出資料 ​

Byte0
Dataitem code

item code : SSM2_ITEM_CODE_MAGNET (17)

ssm5 回傳內容 ​

Byte210
Dataresitem_codetype
說明命令處裡狀態指令編號推送類型

type : SSM2_OP_CODE_RESPONSE (0x07)

item code : SSM2_ITEM_CODE_MAGNET (17)

res : CMD_RESULT_SUCCESS (0x00)

iOS、Android、ESP32 範例 ​

Android 範例 ​

java
    override fun magnet(result: CHResult<CHEmpty>) {
        if (checkBle(result)) return
        sendCommand(SesameOS3Payload(SesameItemCode.magnet.value, byteArrayOf()), DeviceSegmentType.cipher) { res ->
            result.invoke(Result.success(CHResultState.CHResultStateBLE(CHEmpty())))
        }
    }

iOS 範例 ​

jsx
    func magnet(result: @escaping (CHResult<CHEmpty>)) {
        if(checkBle(result)){return}

        sendCommand(.init(.magnet)) { responsePayload in
            if responsePayload.cmdResultCode == .success {
                result(.success(CHResultStateBLE(input: CHEmpty())))
            } else {
                result(.failure(self.errorFromResultCode(responsePayload.cmdResultCode)))
            }
        }
    }

ESP 範例 ​

jsx
if (src_id == SSM2_ITEM_CODE_MAGNET) {
        app_ss5_magnet();// 量测并且更新磁铁角度
        tell_device_status_to_mobile();// 再通知一次角度
    }
if (cmd_it_code == SSM2_ITEM_CODE_MAGNET) {
    talk_to_mobile(mobile, SSM2_SEG_PARSING_TYPE_CIPHERTEXT, (uint8_t *) ss5_res,
                                   offsetof(ss5_response, payload));
}