main.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "nimbledemo"
  3. VERSION = "1.0.0"
  4. log.info("main", PROJECT, VERSION)
  5. -- 一定要添加sys.lua !!!!
  6. sys = require("sys")
  7. --添加硬狗防止程序卡死
  8. if wdt then
  9. wdt.init(15000)--初始化watchdog设置为15s
  10. sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
  11. end
  12. -- 监听BLE主适配的状态变化
  13. sys.subscribe("BLE_STATE_INC", function(state)
  14. log.info("ble", "ble state changed", state)
  15. if state == 1 then
  16. nimble.server_init()
  17. else
  18. nimble.server_deinit()
  19. end
  20. end)
  21. -- 监听GATT服务器的WRITE_CHR
  22. sys.subscribe("BLE_GATT_WRITE_CHR", function(info, data)
  23. -- info 是个table, 但当前没有数据
  24. log.info("ble", "data got!!", data:toHex())
  25. end)
  26. -- TODO 支持传数据(read)和推送数据(notify)
  27. -- 配合微信小程序 "LuatOS蓝牙调试"
  28. -- 1. 若开发板无天线, 将手机尽量靠近芯片也能搜到
  29. -- 2. 该小程序是开源的, 每次write会自动分包
  30. -- https://gitee.com/openLuat/luatos-miniapps
  31. sys.taskInit(function()
  32. sys.wait(2000)
  33. nimble.debug(6)
  34. nimble.init("LuatOS-Wendal") -- 蓝牙名称可修改,也有默认值LOS-$mac地址
  35. if nimble.send_msg then
  36. while 1 do
  37. sys.wait(3000)
  38. nimble.send_msg(1, 0, string.char(0x5A, 0xA5, 0x12, 0x34, 0x56))
  39. end
  40. else
  41. log.info("nimble", "no send_msg")
  42. end
  43. end)
  44. -- 用户代码已结束---------------------------------------------
  45. -- 结尾总是这一句
  46. sys.run()
  47. -- sys.run()之后后面不要加任何语句!!!!!