beacon.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --- 模块功能:蓝牙功能测试
  2. -- @author openLuat
  3. -- @module bluetooth.beacon
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2020.09.27
  7. -- @注意 需要使用core(Luat_VXXXX_RDA8910_BT_FLOAT)版本
  8. module(..., package.seeall)
  9. local function init()
  10. log.info("bt", "init")
  11. rtos.on(rtos.MSG_BLUETOOTH, function(msg)
  12. if msg.event == btcore.MSG_OPEN_CNF then
  13. sys.publish("BT_OPEN", msg.result) --蓝牙打开成功
  14. end
  15. end)
  16. end
  17. local function poweron()
  18. log.info("bt", "poweron")
  19. btcore.open(0) --打开蓝牙从模式
  20. _, result = sys.waitUntil("BT_OPEN", 5000) --等待蓝牙打开成功
  21. end
  22. local function advertising()
  23. log.info("bt", "advertising")
  24. --btcore.setadvparam(0x80,0xa0,0,0,0x07,0,0,"11:22:33:44:55:66") --广播参数设置 (最小广播间隔,最大广播间隔,广播类型,广播本地地址类型,广播channel map,广播过滤策略,定向地址类型,定向地址)
  25. btcore.setbeacondata("AB8190D5D11E4941ACC442F30510B408",10107,50179) --beacon设置 (uuid,major,minor)
  26. --btcore.setadvdata(string.fromHex("0201061AFF06000215AB8190D5D11E4941ACC442F30510B408277BC403C5")) --通过设置广播包接口设置beacon
  27. btcore.advertising(1)-- 打开广播
  28. end
  29. local ble_test = {init, poweron,advertising}
  30. sys.taskInit(function()
  31. for _, f in ipairs(ble_test) do
  32. sys.wait(5000)
  33. f()
  34. end
  35. end)