main.lua 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "ble"
  3. VERSION = "1.0.0"
  4. -- 引入必要的库文件(lua编写), 内部库不需要require
  5. sys = require("sys")
  6. log.info("main", "project name is ", PROJECT, "version is ", VERSION)
  7. -- 通过boot按键方便刷Air8000S
  8. function PWR8000S(val) gpio.set(23, val) end
  9. gpio.debounce(0, 1000)
  10. gpio.setup(0, function()
  11. sys.taskInit(function()
  12. log.info("复位Air8000S")
  13. PWR8000S(0)
  14. sys.wait(20)
  15. PWR8000S(1)
  16. end)
  17. end, gpio.PULLDOWN)
  18. function ble_callback()
  19. -- 无事可做
  20. end
  21. sys.taskInit(function()
  22. local ret = 0
  23. sys.wait(500)
  24. log.info("开始初始化蓝牙核心")
  25. bluetooth_device = bluetooth.init()
  26. sys.wait(100)
  27. log.info("初始化BLE功能")
  28. ble_device = bluetooth_device:ble(ble_callback)
  29. sys.wait(100)
  30. sys.wait(100)
  31. log.info("开始设置广播内容")
  32. local adv_data = string.char(0x4C, 0x00,
  33. 0x02, 0x15, 0x01, 0x02, 0x03, 0x04, 0x05,
  34. 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
  35. 0x00, 0x01,
  36. 0x00, 0x02,
  37. 0x00)
  38. ble_device:adv_create({
  39. addr_mode = ble.PUBLIC,
  40. channel_map = ble.CHNLS_ALL,
  41. intv_min = 120,
  42. intv_max = 120,
  43. adv_data = {
  44. {ble.FLAGS, string.char(0x06)},
  45. {ble.MANUFACTURER_SPECIFIC_DATA, adv_data}
  46. }
  47. })
  48. sys.wait(100)
  49. log.info("开始广播")
  50. ble_device:adv_start()
  51. end)
  52. -- 用户代码已结束---------------------------------------------
  53. -- 结尾总是这一句
  54. sys.run()
  55. -- sys.run()之后后面不要加任何语句!!!!!