main.lua 1.8 KB

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