Skip to content

107 Card Change(修改卡片) ​

  1. ssm_touch 加入新卡,主動推送新卡 ID 及名字給手機。
  2. 手機將 id 及新名稱傳給 ssm_touch,ssm_touch 回傳命令接收成功後修改卡片名稱,並主動推送新卡 ID 及名字給手機(名字超過 20Bytes,只取前 20Bytes)。

循序圖 (新增卡片) ​

循序圖 (修改卡片名稱) ​

手機送出資料 ​

ByteN ~ 10
Datapayloaditem code

item code : SSM_OS3_CARD_CHANGE (107)

payload : 詳見以下表格

payload ​

Byte(Card Name Len + Card ID Len + 1) ~ (Card ID Len + 2)Card ID Len + 1Card ID Len ~ 10
DataCard NameCard Name LenCard IDCard ID Len

範例 ​

id_len = 5

name_len = 4

Byte10 ~ 765 ~ 10
DataCard NameCard Name LenCard IDCard ID Len

ssm_touch 回傳內容 ​

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

type : SSM2_OP_CODE_RESPONSE (0x07)

item code : SSM_OS3_CARD_CHANGE (107)

res : CMD_RESULT_SUCCESS (0x00)

ssm_touch 推送內容 ​

ByteN ~ 210
Datapayloaditem_codetype
說明送給手機的資料指令編號推送類型

type : SSM2_OP_CODE_PUBLISH (0x08)

item code : SSM_OS3_CARD_CHANGE (107)

payload : 詳見以下表格

payload ​

Byte(Card Name Len + Card ID Len + 1) ~ (Card ID Len + 2)Card ID Len + 1Card ID Len ~ 10
DataCard NameCard Name LenCard IDCard ID Len

範例 ​

id_len = 5

name_len = 4

Byte10 ~ 765 ~ 10
DataCard NameCard Name LenCard IDCard ID Len

iOS、Android、ESP32 範例 ​

Android 範例 ​

jsx
    override fun cardChange(ID: String, name: String, result: CHResult<CHEmpty>) {
        if (checkBle(result)) return
        sendCommand(SesameOS3Payload(SesameItemCode.SSM_OS3_CARD_CHANGE.value, byteArrayOf(ID.hexStringToByteArray().size.toByte()) + ID.hexStringToByteArray() + name.toByteArray())) { res ->
            result.invoke(Result.success(CHResultState.CHResultStateBLE(CHEmpty())))
        }
    }

iOS 範例 ​

jsx
    func cardsChange(ID: String, name: String, result: @escaping (CHResult<CHEmpty>)) {
        if (self.checkBle(result)) { return }

        let idData = ID.hexStringtoData()
        let payload = Data([UInt8(idData.count)]) + idData + name.bytes
        L.d("TouchDevice",payload.toHexLog())
        sendCommand(.init(.SSM_OS3_CARD_CHANGE, payload)) { _ in
            L.d("[TouchDevice][fingerPrintsChange][ok]")
            result(.success(CHResultStateNetworks(input: CHEmpty())))
        }
    }

ESP 範例 ​

jsx