main.lua 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. PROJECT = "airtalk_demo"
  2. VERSION = "1.0.1"
  3. PRODUCT_KEY = "s1uUnY6KA06ifIjcutm5oNbG3MZf5aUv" -- 到 iot.openluat.com 创建项目,获取正确的项目id
  4. log.style(1)
  5. require "demo_define"
  6. require "airtalk_net_ctrl"
  7. require "audio_config"
  8. errDump.config(true, 600, "airtalk_test")
  9. local function key_cb()
  10. end
  11. --按下boot开始上传,再按下停止,加入了软件去抖,不需要长按了
  12. gpio.setup(0, key_cb, gpio.PULLDOWN, gpio.RISING)
  13. gpio.debounce(0, 200, 1)
  14. local test_ready = false
  15. local function task_cb(msg)
  16. log.info("未处理消息", msg[1], msg[2], msg[3], msg[4])
  17. if msg[1] == MSG_SPEECH_IND then
  18. elseif msg[1] == MSG_NOT_READY then
  19. test_ready = false
  20. msg = sys.waitMsg(USER_TASK_NAME, MSG_KEY_PRESS)
  21. end
  22. end
  23. local function user_task()
  24. audio_init()
  25. airtalk_mqtt_init()
  26. local msg
  27. while true do
  28. msg = sys.waitMsg(USER_TASK_NAME, MSG_READY)
  29. log.info("airtalk准备好了")
  30. test_ready = true
  31. while test_ready do
  32. msg = sys.waitMsg(USER_TASK_NAME, MSG_KEY_PRESS)
  33. if test_ready then
  34. sys.sendMsg(AIRTALK_TASK_NAME, MSG_PERSON_SPEECH_REQ, "") --测试阶段自动给一个device打
  35. msg = sys.waitMsg(USER_TASK_NAME, MSG_PERSON_SPEECH_ACK)
  36. msg = sys.waitMsg(USER_TASK_NAME, MSG_KEY_PRESS)
  37. sys.sendMsg(AIRTALK_TASK_NAME, MSG_SPEECH_STOP_REQ)
  38. msg = sys.waitMsg(USER_TASK_NAME, MSG_SPEECH_STOP_ACK)
  39. end
  40. end
  41. log.info("airtalk断线了")
  42. end
  43. end
  44. sys.taskInitEx(user_task, USER_TASK_NAME, task_cb)
  45. --定期检查ram使用情况,及时发现内存泄露
  46. sys.taskInit(function()
  47. while true do
  48. sys.wait(5000)
  49. log.info("time", os.time())
  50. log.info("lua", rtos.meminfo("lua"))
  51. log.info("sys", rtos.meminfo("sys"))
  52. log.info("psram", rtos.meminfo("psram"))
  53. end
  54. end)
  55. sys.run()