买了一台当贝 F6 ,想要实现米家控制。找到一篇文章:https://www.znds.com/tv-1237327-1-1.html
但是作者没有在文章中透露细节,没办法,只有自己来研究。
准备了以下内容:
抓到的电源键广播包类似于:
/**
* LEN | TYPE | VALUE
* 2 | 0x01 | 0x04
* 3 | 0x03 | 0x1218
* 3 | 0x19 | 0x8001
* 13 | 0xFF | 0x5D000300011808642AA0C884
*/
static uint8_t adv_data_on_off[] = {
// Flags
0x02, 0x01, 0x04,
// Complete list of 16-bit Service UUIDs
0x03, 0x03, 0x12, 0x18,
// Appearance
0x03, 0x19, 0x80, 0x01,
// Manufacturer Specific Data
0x0D, 0xFF, 0x5D, 0x00, 0x03, 0x00, 0x01, 0x18, 0x08, 0x64, 0x2A, 0xA0, 0xC8, 0x84
};
由于不知道怎么用手机重放测试,直接开始编写 ESP 代码,刷入之后,用小爱同学执行命令也能正常重放。 但是投影仪并没有反应。
观察遥控器广播的包数据 Manufacturer Specific Data
里,有一位是每次递增的。我直接改为下一次预计的值,重放之后也无法正常开关。
遥控器发出的包貌似是单次广播的?我看 BLE 协议里,广播包都是循环广播的?
按帖文里的说法,他直接重放原包就实现了,感觉我是不是哪里有问题。
现在卡住了,不知道后面如何进行。
我的代码放在 GitHub 了:esp32-ble-remote-control
希望各位能帮忙分析一下问题出在什么地方,谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.