Просмотр исходного кода

add: netdrv,ch390的demo,添加httpsrv的演示

Wendal Chen 11 месяцев назад
Родитель
Сommit
c49b49d55b
3 измененных файлов с 60 добавлено и 2 удалено
  1. 28 0
      demo/netdrv/ch390h/index.html
  2. 7 0
      demo/netdrv/ch390h/lan.lua
  3. 25 2
      demo/netdrv/ch390h/wan.lua

+ 28 - 0
demo/netdrv/ch390h/index.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<header>
+    <meta charset="utf-8" />
+    <title>Http Server Get-Start</title>
+    <script type="text/javascript">
+        function led(key) {
+            fetch("/led/" + key)
+        }
+    </script>
+</header>
+
+<body>
+    <h2>点击按钮, led灯会亮起或熄灭</h2>
+    <div>
+        <div>
+            <button onclick="led(1)">LED亮</button>
+        </div>
+        <div>
+            <button onclick="led(0)">LED灭</button>
+        </div>
+    </div>
+    <div>
+        <h4>Power by <a href="https://docs.openluat.com">LuatOS</a></h4>
+    </div>
+</body>
+
+</html>

+ 7 - 0
demo/netdrv/ch390h/lan.lua

@@ -44,6 +44,13 @@ sys.taskInit(function ()
         log.info("启动iperf服务器端")
         iperf.server(socket.LWIP_ETH)
     end
+    if httpsrv then
+        log.info("启动httpsrv")
+        httpsrv.start(80, function(fd, method, uri, headers, body)
+            log.info("httpsrv", "收到请求", uri, headers, body)
+            return 200, {}, "ok"
+        end, socket.LWIP_ETH)
+    end
 end)
 
 

+ 25 - 2
demo/netdrv/ch390h/wan.lua

@@ -28,10 +28,33 @@ end)
 
 
 sys.taskInit(function()
-    -- sys.waitUntil("IP_READY")
+    -- 等以太网就绪
+    while 1 do
+        local result, ip, adapter = sys.waitUntil("IP_READY", 3000)
+        log.info("ready?", result, ip, adapter)
+        if adapter and adapter ==  socket.LWIP_ETH then
+            break
+        end
+    end
+    
+    sys.wait(200)
+    httpsrv.start(80, function()
+        log.info("httpsrv", method, uri, json.encode(headers), body)
+        -- meminfo()
+        if uri == "/led/1" then
+            LEDA(1)
+            return 200, {}, "ok"
+        elseif uri == "/led/0" then
+            LEDA(0)
+            return 200, {}, "ok"
+        end
+        return 404, {}, "Not Found" .. uri
+    end, socket.LWIP_ETH)
+    iperf.server(socket.LWIP_ETH)
     while 1 do
         sys.wait(6000)
-        log.info("http", http.request("GET", "http://httpbin.air32.cn/bytes/4096", nil, nil, {adapter=socket.LWIP_ETH}).wait())
+        local code, headers, body = http.request("GET", "http://httpbin.air32.cn/bytes/4096", nil, nil, {adapter=socket.LWIP_ETH}).wait()
+        log.info("http", code, headers, body and #body)
         log.info("lua", rtos.meminfo())
         log.info("sys", rtos.meminfo("sys"))
     end