《低功耗蓝牙开发权威指南》——2.6节凡事皆有状态
2023-09-11 14:19:08 时间
本节书摘来自华章社区《低功耗蓝牙开发权威指南》一书中的第2章,第2.6节凡事皆有状态,作者 (英)Robin Heydon,更多章节内容可以访问云栖社区“华章社区”公众号查看
2.6 凡事皆有状态
低功耗蓝牙背后有个基本的概念:任何事物都有状态。状态可以是任何东西:当前的温度、设备里电池的状态、设备名称或是对测量温度的地点的描述。它通过属性服务器上的属性协议对外公开。
状态并不局限于“可读”状态,还包括“可写”状态。比如有一台可以设置温度的自动调温器,另一台设备在判断房间应升温或降温之后,可对其进行设置。既然可以公开各种状态,自然也可以公开状态机的状态。通过使用显式的状态机属性值,设备可以清楚地提供其当前的状态。这为客户端随时断开连接提供了可能—在重新连接时,它们只需简单读取便可快速地确定对方的当前状态。
一些状态是可变的,甚至可以频繁改变。要快速实现服务器到客户端的状态传输,就必须支持状态信息的通知功能。通知直接从服务器发至客户端,无需客户端向服务器执行轮询,这种设计可以支持高效的应用,比如只有当电池出现状况时才向客户端通知电池状态,在此之前,客户端根本不用担心电池的状态。
这个简单的基于状态的模型使其得以构造一个非常高效的客户端–服务器架构。这也让应用能够采用面向对象的方法进行设计,重用大量的数据类型和服务行为。同时,这也减少了设备需要包含的代码数量以及用来保存代码的存储器数量,从而降低设备功耗。更少的代码还有另一个显著的好处—更少的错误。总之,越简单的系统越便宜,开发更迅速,包含更少的错误,更加强健,也更容易维护。正如罗伯特·布朗宁(Robert Browning)曾说的那样:“少即是多。”
《低功耗蓝牙开发权威指南》——导读 本节书摘来自华章社区《低功耗蓝牙开发权威指南》一书中的目录,作者 (英)Robin Heydon,更多章节内容可以访问云栖社区“华章社区”公众号查看
相关文章
- jquery checkbox选中状态
- JAVA Eclipse开发Android如何让屏幕保持为竖直或水平状态
- ngxs 状态管理器
- 重新整理操作系统概念系类——进程状态与切换
- 《设计模式之禅》--备忘录扩展:多状态的备忘录
- Android开发学习笔记(十四)横屏竖屏状态判断
- spark更新数据状态(updateStateByKey)
- 老生常谈:状态模式
- SAP UI5 应用开发教程之七十八 - 如何通过 url 保持 SAP UI5 搜索的状态,让其支持书签功能试读版
- 一个好用的查看Angular应用ngrx状态的Chrome扩展:Redux devTools
- uni——点击同一个按钮,赋予不同状态(来回切换)
- javascript案例37——input内容选中状态
- 〖Python 数据库开发实战 - Python与Redis交互篇⑭〗- 综合案例 - 新闻管理系统 - 更新所编辑新闻状态(编辑角色权限)
- Windows下实时检测计算机联网状态
- 状态模式
- TCP三次握手和Time-Wait状态
- [cocos2dx笔记015]关于cocos2dx Button三种状态说明
- 保留状态的秘密 - 深入了解Java备忘录模式(Memento Pattern)
- Linux 进程状态D Disk Sleep