main.lua 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. local sys = require "sys"
  2. log.info("sys", "from win32")
  3. sys.taskInit(function ()
  4. log.info("lwip", "wait for ready")
  5. sys.wait(10000)
  6. log.info("lwip", "mqtt_new")
  7. local mqttc = lwip.mqtt_new()
  8. log.info("lwip", "mqtt_arg")
  9. local cbs = {}
  10. cbs.conn = function(status)
  11. log.info("mqtt", "conn_cb", "status", status)
  12. if status == lwip.MQTT_CONNECT_ACCEPTED then
  13. lwip.mqtt_subscribe(mqttc, "/sys/req/XXXYYYZZZ", 0)
  14. lwip.mqtt_subscribe(mqttc, "/sys/req/XXXYYYZZZ", 1)
  15. lwip.mqtt_subscribe(mqttc, "/sys/ota/XXXYYYZZZ", 0)
  16. else
  17. log.info("mqtt", "error or closed")
  18. end
  19. sys.publish("MQTT_INC")
  20. end
  21. cbs.inpub = function(topic, data)
  22. log.info("mqtt", topic, data)
  23. end
  24. cbs.req = function(result)
  25. log.info("mqtt", "req", result)
  26. end
  27. lwip.mqtt_arg(mqttc, cbs)
  28. while 1 do
  29. log.info("lwip", "mqtt_connect")
  30. local ret, err = lwip.mqtt_connect(mqttc, "120.55.137.106", 1884, {
  31. id = "XXXYYYZZZ",
  32. user = "test",
  33. pass = "test",
  34. keep_alive = 300,
  35. will_topic = "/sys/will/XXXYYYZZZ",
  36. will_data = "offline",
  37. will_qos = 0,
  38. will_retain = 0
  39. })
  40. log.info("mqtt", "conn", ret, err)
  41. if ret then
  42. --lwip.mqtt_publish(mqttc, "/sys/ping/XXXYYYZZZ", "{}")
  43. sys.waitUntil("MQTT_INC", 60000)
  44. while lwip.mqtt_is_connected(mqttc) do
  45. lwip.mqtt_publish(mqttc, "/sys/ping/XXXYYYZZZ", "{}")
  46. sys.waitUntil("MQTT_INC", 60000)
  47. end
  48. log.info("mqtt", "mqtt disconnect?")
  49. end
  50. sys.wait(5000)
  51. end
  52. end)
  53. sys.run()