lan.lua 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. dhcps = require "dhcpsrv"
  2. dnsproxy = require "dnsproxy"
  3. local LEDA = gpio.setup(146, 0, gpio.PULLUP)
  4. sys.taskInit(function()
  5. sys.wait(500)
  6. log.info("ch390", "打开LDO供电")
  7. gpio.setup(140, 1, gpio.PULLUP) -- 打开ch390供电
  8. sys.wait(6000)
  9. local result = spi.setup(1, -- spi_id
  10. nil, 0, -- CPHA
  11. 0, -- CPOL
  12. 8, -- 数据宽度
  13. 25600000 -- ,--频率
  14. -- spi.MSB,--高低位顺序 可选,默认高位在前
  15. -- spi.master,--主模式 可选,默认主
  16. -- spi.full--全双工 可选,默认全双工
  17. )
  18. log.info("main", "open", result)
  19. if result ~= 0 then -- 返回值为0,表示打开成功
  20. log.info("main", "spi open error", result)
  21. return
  22. end
  23. -- 初始化指定netdrv设备,
  24. -- socket.LWIP_ETH 网络适配器编号
  25. -- netdrv.CH390外挂CH390
  26. -- SPI ID 1, 片选 GPIO12
  27. netdrv.setup(socket.LWIP_ETH, netdrv.CH390, {
  28. spi = 1,
  29. cs = 12
  30. })
  31. sys.wait(3000)
  32. local ipv4, mark, gw = netdrv.ipv4(socket.LWIP_ETH, "192.168.4.1", "255.255.255.0", "192.168.4.1")
  33. log.info("ipv4", ipv4, mark, gw)
  34. while netdrv.link(socket.LWIP_ETH) ~= true do
  35. sys.wait(100)
  36. end
  37. while netdrv.link(socket.LWIP_GP) ~= true do
  38. sys.wait(100)
  39. end
  40. sys.wait(2000)
  41. dhcps.create({
  42. adapter = socket.LWIP_ETH
  43. })
  44. dnsproxy.setup(socket.LWIP_ETH, socket.LWIP_GP)
  45. netdrv.napt(socket.LWIP_GP)
  46. httpsrv.start(80, function(client, method, uri, headers, body)
  47. -- method 是字符串, 例如 GET POST PUT DELETE
  48. -- uri 也是字符串 例如 / /api/abc
  49. -- headers table类型
  50. -- body 字符串
  51. log.info("httpsrv", method, uri, json.encode(headers), body)
  52. -- meminfo()
  53. if uri == "/led/1" then
  54. LEDA(1)
  55. return 200, {}, "ok"
  56. elseif uri == "/led/0" then
  57. LEDA(0)
  58. return 200, {}, "ok"
  59. end
  60. return 404, {}, "Not Found" .. uri
  61. -- 返回值的约定 code, headers, body
  62. -- 若没有返回值, 则默认 404, {} ,""
  63. end, socket.LWIP_ETH)
  64. if iperf then
  65. log.info("启动iperf服务器端")
  66. iperf.server(socket.LWIP_ETH)
  67. end
  68. end)
  69. sys.taskInit(function()
  70. while 1 do
  71. sys.wait(300000)
  72. log.info("lua", rtos.meminfo())
  73. log.info("sys", rtos.meminfo("sys"))
  74. end
  75. end)