main.lua 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. --演示airtalk基本功能
  2. --按一次boot,开始1对1对讲,再按一次boot,结束对讲
  3. --按一次powerkey,开始1对多对讲,再按一次powerkey或者boot,结束对讲
  4. PROJECT = "airtalk_demo"
  5. VERSION = "1.0.1"
  6. PRODUCT_KEY = "123" -- 到 iot.openluat.com 创建项目,获取正确的项目id
  7. _G.sys=require"sys"
  8. log.style(1)
  9. require "demo_define"
  10. require "airtalk_dev_ctrl"
  11. require "audio_config"
  12. --errDump.config(true, 600, "airtalk_test")
  13. mcu.hardfault(0)
  14. local function boot_key_cb()
  15. sys.sendMsg(USER_TASK_NAME, MSG_KEY_PRESS, false)
  16. end
  17. local function power_key_cb()
  18. sys.sendMsg(USER_TASK_NAME, MSG_KEY_PRESS, true)
  19. end
  20. --按下boot开始上传,再按下停止,加入了软件去抖,不需要长按了
  21. gpio.setup(0, boot_key_cb, gpio.PULLDOWN, gpio.RISING)
  22. gpio.debounce(0, 200, 1)
  23. gpio.setup(gpio.PWR_KEY, power_key_cb, gpio.PULLUP, gpio.FALLING)
  24. gpio.debounce(gpio.PWR_KEY, 200, 1)
  25. local test_ready = false
  26. local function task_cb(msg)
  27. log.info("未处理消息", msg[1], msg[2], msg[3], msg[4])
  28. if msg[1] == MSG_SPEECH_IND then
  29. elseif msg[1] == MSG_NOT_READY then
  30. test_ready = false
  31. msg = sys.waitMsg(USER_TASK_NAME, MSG_KEY_PRESS)
  32. end
  33. end
  34. local function user_task()
  35. audio_init()
  36. airtalk_mqtt_init()
  37. local msg
  38. while true do
  39. msg = sys.waitMsg(USER_TASK_NAME, MSG_KEY_PRESS)
  40. if msg[2] then -- true powerkey false boot key
  41. sys.sendMsg(AIRTALK_TASK_NAME, MSG_GROUP_SPEECH_TEST_START) --测试阶段自动给一个device打
  42. else
  43. sys.sendMsg(AIRTALK_TASK_NAME, MSG_PERSON_SPEECH_TEST_START) --测试阶段自动给一个device打
  44. end
  45. msg = sys.waitMsg(USER_TASK_NAME, MSG_KEY_PRESS)
  46. sys.sendMsg(AIRTALK_TASK_NAME, MSG_SPEECH_STOP_TEST_END) --再按一次就自动挂断
  47. end
  48. end
  49. sys.taskInitEx(user_task, USER_TASK_NAME, task_cb)
  50. --定期检查ram使用情况,及时发现内存泄露
  51. sys.taskInit(function()
  52. while true do
  53. sys.wait(60000)
  54. log.info("time", os.time())
  55. log.info("lua", rtos.meminfo("lua"))
  56. log.info("sys", rtos.meminfo("sys"))
  57. log.info("psram", rtos.meminfo("psram"))
  58. end
  59. end)
  60. sys.run()