什么是 DAB
设备自动化总线(DAB)是一种简便的协议,允许在客厅中的消费设备之间轻松交互。它主要针对互联网连接设备,如智能电视、机顶盒和游戏机。它是device-automation-bus的缩写
本文摘要
本文深入浅出介绍了DAB的基本概念, 软件环境部署, 以及为了让DAB正常工作, 列举了目前开源DAB代码需要加入的补丁 。
DAB 的目的是什么?
DAB 使应用程序与客厅设备之间的通信变得更加容易。它使设备制造商和应用程序开发人员能够以编程方式执行各种任务。
主要特点
- 应用程序控制:DAB 允许在设备上启动和停止应用程序。
- 按键操作:它允许向设备发送按键操作。
- 设备指标:DAB 便于捕获设备性能指标。
- 重启操作:您可以使用 DAB 重启设备。
好处
- 测试自动化:通过使用标准化的设备交互来自动化您的客厅应用程序测试套件。
- 稳定的应用程序:衡量设备性能并提高应用程序的稳定性。
- 节省时间和成本:减少开发和测试过程中的手动任务。
对设备制造商的好处
- 通过支持 DAB,减少手动和临时测试工作。
- 在您的设备上启用稳定的应用程序。
- 减少设备测试和认证所需的时间。
对应用程序开发人员的好处
- 提高您构建的应用程序的质量。
- 使用 DAB 自动化手动测试。
- 提高测试的可靠性。
DAB 2.0 在数字电视中的应用
架构
DAB 2.0 已经被实施以增强设备自动化能力。在数字电视中,DAB 2.0 是在 Google 和 Collabra 的合作下引入的。DAB基于物联网MQTT通讯协议. 所以要了解DAB,先必须熟悉MQTT.
以下是 DAB 2.0 如何与 数字电视集成的说明。
DAB的协议文档参考
https://github.com/device-automation-bus/dab-specification-2.0
DAB离不开的MQTT服务器软件MQTT broker
代码在 GitHub - eclipse/mosquitto: Eclipse Mosquitto - An open source MQTT broker 英文蚊子,加了个字母T
DAB分原生Native模式和桥接模式
1, 原生Native模式
参考代码在
https://github.com/device-automation-bus/dab-adapter-cpp
这个 C++ DAB 适配器模板旨在简化 DAB 操作的实现。该库处理所有消息层接口、解析和分发工作;这意味着 DAB 合作伙伴可以专注于逐步实现他们希望支持的 DAB 操作。
修改代码将在加入相应的patch
https://github.com/joyfish/dab-adapter-cpp
外部依赖:
eclipse-paho-mqtt-c - 该库实现了 MQTT 层。
Dab adapter cpp 调用Paho MQTT的C库函数, 对MQTT总线收发数据, 实现DAB协议.
主要函数的修改说明
原本的代码, 接收数据很好