![【GATT】规范精讲[6]: 写得进去还要写得靠谱——五种写过程、签名写、可靠写与写描述符](http://pic.xiahunao.cn/yaotu/【GATT】规范精讲[6]: 写得进去还要写得靠谱——五种写过程、签名写、可靠写与写描述符)
读过程解决的是把值拿回来,方向是服务器流向客户端;这一篇把方向倒过来:客户端把值写进服务器。表面看就是换个 PDU 的事,真写起来会发现写比读麻烦得多。读失败了大不了重试,数据还是对端那份;写一旦在半路上出岔子,配置可能改了一半、固件可能写花、设备可能变砖。所以 GATT 给写动作设计了整整五个可靠性递增的子过程,再给描述符配两个,名字比读家族还多。目录一、写家族全景:七种写法,可靠性一路加价二、无响应写:发后即忘,用吞吐换确认三、空口实录一:4253 条命令扛下 1.11MB,速率差十倍的现场四、签名写:未加密链路上的认证写五、带响应写:每一笔都要回执六、空口实录二:7 笔带响应写,全部是 CCCD 订阅七、长值写:Prepare 排队分段,Execute 一键落盘八、可靠写:写入前先双向对账的事务写九、写描述符:原语复用,语义落在句柄上十、选型决策与错误码速查十一、测验这一篇按可靠性从低到高把七种写法串起来:发后即忘的无响应写、带 12 字节签名的认证写、一问一答的带响应写、分段缓存加一键提交的长值写、以及写入前先双向对账的可靠写,最后是两个描述符写。老规矩,先立全景。一、写家族全景:七种写法,可靠性一路加价先看全景。五个特征值写子过程加两个描述符写子过程,底层只动用五条 ATT 原语:从左到右读这张表,就是一条可靠性加价链。最左边的无响应写用 ATT_WRITE_CMD(0x52),发出即结束,连对端收没收到都不知道;签名写换 ATT_S