Browse Source

update:更新Air8000和Air8101的socket/client/long_connection demo的注释和readme文件

zhutianhua 7 months ago
parent
commit
711579f218

+ 6 - 1
module/Air8000/demo/socket/client/long_connection/main.lua

@@ -16,7 +16,12 @@
 - 串口应用功能模块uart_app.lua,通过uart1接收到串口数据,将串口数据增加send from uart: 前缀后发送给server;
 - 定时器应用功能模块timer_app.lua,定时产生数据,将数据增加send from timer:前缀后发送给server;
 4、每一路socket连接,client收到server数据后,将数据增加recv from tcp/udp/tcp ssl/tcp ssl ca(四选一)server: 前缀后,通过uart1发送出去;
-5、每一路socket连接,启动一个网络业务逻辑看门狗task,用来监控socket工作状态,如果连续长时间工作不正常,重启整个软件系统(后续补充);
+5、启动一个网络业务逻辑看门狗task,用来监控网络环境,如果连续长时间工作不正常,重启整个软件系统;
+6、netdrv_device:配置连接外网使用的网卡,目前支持以下四种选择(四选一)
+   (1) netdrv_4g:4G网卡
+   (2) netdrv_wifi:WIFI STA网卡
+   (3) netdrv_eth_spi:通过SPI外挂CH390H芯片的以太网卡
+   (4) netdrv_multiple:支持以上三种网卡,可以配置三种网卡的优先级
 
 更多说明参考本目录下的readme.md文件
 ]]

+ 4 - 15
module/Air8000/demo/socket/client/long_connection/netdrv/netdrv_eth_spi.lua

@@ -6,22 +6,11 @@
 @author  朱天华
 @usage
 本文件为“通过SPI外挂CH390H芯片的以太网卡”驱动模块 ,核心业务逻辑为:
-1、打开AirETH_1000配件板供电开关;
-2、初始化spi0,初始化以太网卡,并且在以太网卡上开启DHCP(动态主机配置协议);
+1、打开CH390H芯片供电开关;
+2、初始化spi1,初始化以太网卡,并且在以太网卡上开启DHCP(动态主机配置协议);
 3、以太网卡的连接状态发生变化时,在日志中进行打印;
 
-Air8101核心板和AirETH_1000配件板的硬件接线方式为:
-Air8101核心板通过TYPE-C USB口供电(核心板背面的功耗测试开关拨到OFF一端);
-如果测试发现软件重启,并且日志中出现  poweron reason 0,表示供电不足,此时再通过直流稳压电源对核心板的VIN管脚进行5V供电;
-| Air8101核心板   |  AirETH_1000配件板 |
-| --------------- | ----------------- |
-| 59/3V3          | 3.3v              |
-| gnd             | gnd               |
-| 28/DCLK         | SCK               |
-| 54/DISP         | CSS               |
-| 55/HSYN         | SDO               |
-| 57/DE           | SDI               |
-| 14/GPIO8        | INT               |
+直接使用Air8000开发板硬件测试即可;
 
 本文件没有对外接口,直接在其他功能模块中require "netdrv_eth_spi"就可以加载运行;
 ]]
@@ -47,7 +36,7 @@ sys.subscribe("IP_LOSE", ip_lose_func)
 
 
 
---本demo测试使用的是Air8000开发板V2.0
+--本demo测试使用的是Air8000开发板
 --GPIO140为CH390H以太网芯片的供电使能控制引脚
 gpio.setup(140, 1, gpio.PULLUP)
 

+ 3 - 37
module/Air8000/demo/socket/client/long_connection/netdrv/netdrv_multiple.lua

@@ -1,6 +1,6 @@
 --[[
 @module  netdrv_multiple
-@summary 多网卡(WIFI STA网卡、通过MAC层的rmii接口外挂PHY芯片(LAN8720Ai)的以太网卡、通过SPI外挂CH390H芯片的以太网卡、通过SPI外挂4G模组的4G网卡)驱动模块 
+@summary 多网卡(4G网卡、WIFI STA网卡、通过SPI外挂CH390H芯片的以太网卡)驱动模块 
 @version 1.0
 @date    2025.07.24
 @author  朱天华
@@ -8,41 +8,7 @@
 本文件为多网卡驱动模块 ,核心业务逻辑为:
 1、调用libnetif.set_priority_order配置多网卡的控制参数以及优先级;
 
-
-通过MAC层的rmii接口外挂PHY芯片(LAN8720Ai)的以太网卡:
-Air8101核心板和AirPHY_1000配件板的硬件接线方式为:
-Air8101核心板通过TYPE-C USB口供电(核心板背面的功耗测试开关拨到OFF一端);
-如果测试发现软件重启,并且日志中出现  poweron reason 0,表示供电不足,此时再通过直流稳压电源对核心板的VIN管脚进行5V供电;
-| Air8101核心板 | AirPHY_1000配件板  |
-| ------------ | ------------------ |
-|    59/3V3    |         3.3v       |
-|     gnd      |         gnd        |
-|     5/D2     |         RX1        |
-|    72/D1     |         RX0        |
-|    71/D3     |         CRS        |
-|     4/D0     |         MDIO       |
-|     6/D4     |         TX0        |
-|    74/PCK    |         MDC        |
-|    70/D5     |         TX1        |
-|     7/D6     |         TXEN       |
-|     不接     |          NC        |
-|    69/D7     |         CLK        |
-
-
-通过SPI外挂CH390H芯片的以太网卡:
-Air8101核心板和AirETH_1000配件板的硬件接线方式为:
-Air8101核心板通过TYPE-C USB口供电(核心板背面的功耗测试开关拨到OFF一端);
-如果测试发现软件重启,并且日志中出现  poweron reason 0,表示供电不足,此时再通过直流稳压电源对核心板的VIN管脚进行5V供电;
-| Air8101核心板   |  AirETH_1000配件板 |
-| --------------- | ----------------- |
-| 59/3V3          | 3.3v              |
-| gnd             | gnd               |
-| 28/DCLK         | SCK               |
-| 54/DISP         | CSS               |
-| 55/HSYN         | SDO               |
-| 57/DE           | SDI               |
-| 14/GPIO8        | INT               |
-
+直接使用Air8000开发板硬件测试即可;
 
 本文件没有对外接口,直接在其他功能模块中require "netdrv_multiple"就可以加载运行;
 ]]
@@ -98,7 +64,7 @@ local function netdrv_multiple_task_func()
                     -- 要连接的WIFI路由器名称
                     ssid = "茶室-降功耗,找合宙!",
                     -- 要连接的WIFI路由器密码
-                    password = "Air1234567", 
+                    password = "Air123456", 
 
                     -- 连通性检测ip(选填参数);
                     -- 如果没有传入ip地址,libnetif中会默认使用httpdns能否成功获取baidu.com的ip作为是否连通的判断条件;

+ 2 - 2
module/Air8000/demo/socket/client/long_connection/netdrv_device.lua

@@ -6,10 +6,10 @@
 @author  朱天华
 @usage
 本文件为网络驱动设备功能模块,核心业务逻辑为:根据项目需求,选择并且配置合适的网卡(网络适配器)
-1、netdrv_4G:socket.LWIP_GP,4G网卡;
+1、netdrv_4g:socket.LWIP_GP,4G网卡;
 2、netdrv_wifi:socket.LWIP_STA,WIFI STA网卡;
 3、netdrv_ethernet_spi:socket.LWIP_USER1,通过SPI外挂CH390H芯片的以太网卡;
-4、netdrv_multi_network:可以配置多种网卡的优先级,按照优先级配置,使用其中一种网卡连接外网;
+4、netdrv_multiple:可以配置多种网卡的优先级,按照优先级配置,使用其中一种网卡连接外网;
 
 根据自己的项目需求,只需要require以上四种中的一种即可;
 

+ 23 - 42
module/Air8000/demo/socket/client/long_connection/readme.md

@@ -64,9 +64,9 @@
 
 6、netdrv_device:配置连接外网使用的网卡,目前支持以下四种选择(四选一)
 
-   (1) netdrv_wifi:WIFI STA网卡
+   (1) netdrv_4g:4G网卡
 
-   (2) netdrv_eth_rmii:通过MAC层的rmii接口外挂PHY芯片(LAN8720Ai)的以太网卡
+   (2) netdrv_wifi:WIFI STA网卡
 
    (3) netdrv_eth_spi:通过SPI外挂CH390H芯片的以太网卡
 
@@ -77,59 +77,30 @@
 
 ## 演示硬件环境
 
-![](https://docs.openluat.com/air8101/luatos/app/image/netdrv_multi.jpg)
+![](https://docs.openluat.com/air8000/luatos/app/image/netdrv_multi.jpg)
 
-1、Air8101核心板一块
+1、Air8000开发板一块+可上网的sim卡一张+4g天线一根+wifi天线一根+网线一根:
 
-2、TYPE-C USB数据线一根
+- sim卡插入开发板的sim卡槽
 
-3、USB转串口数据线一根
+- 天线装到开发板上
 
-4、Air8101核心板和数据线的硬件接线方式为
+- 网线一端插入开发板网口,另外一端连接可以上外网的路由器网口
 
-- Air8101核心板通过TYPE-C USB口供电;(核心板背面的功耗测试开关拨到OFF一端)
+2、TYPE-C USB数据线一根 + USB转串口数据线一根,Air8000开发板和数据线的硬件接线方式为:
 
-- 如果测试发现软件频繁重启,重启原因值为:poweron reason 0,可能是供电不足,此时再通过直流稳压电源对核心板的vbat管脚进行4V供电,或者VIN管脚进行5V供电;
+- Air8000开发板通过TYPE-C USB口供电;(外部供电/USB供电 拨动开关 拨到 USB供电一端)
 
 - TYPE-C USB数据线直接插到核心板的TYPE-C USB座子,另外一端连接电脑USB口;
 
-- USB转串口数据线,一般来说,白线连接核心板的12/U1TX,绿线连接核心板的11/U1RX,黑线连接核心板的gnd,另外一端连接电脑USB口;
-
-5、可选AirPHY_1000配件板一块,Air8101核心板和AirPHY_1000配件板的硬件接线方式为:
-
-| Air8101核心板 | AirPHY_1000配件板  |
-| ------------ | ------------------ |
-|    59/3V3    |         3.3v       |
-|     gnd      |         gnd        |
-|     5/D2     |         RX1        |
-|    72/D1     |         RX0        |
-|    71/D3     |         CRS        |
-|     4/D0     |         MDIO       |
-|     6/D4     |         TX0        |
-|    74/PCK    |         MDC        |
-|    70/D5     |         TX1        |
-|     7/D6     |         TXEN       |
-|     不接     |          NC        |
-|    69/D7     |         CLK        |
-
-6、可选AirETH_1000配件板一块,Air8101核心板和AirETH_1000配件板的硬件接线方式为:
-
-| Air8101核心板   |  AirETH_1000配件板 |
-| --------------- | ----------------- |
-| 59/3V3          | 3.3v              |
-| gnd             | gnd               |
-| 28/DCLK         | SCK               |
-| 54/DISP         | CSS               |
-| 55/HSYN         | SDO               |
-| 57/DE           | SDI               |
-| 14/GPIO8        | INT               |
+- USB转串口数据线,一般来说,白线连接开发板的UART1_TX,绿线连接开发板的UART1_RX,黑线连接核心板的GND,另外一端连接电脑USB口;
 
 
 ## 演示软件环境
 
 1、Luatools下载调试工具
 
-2、[Air8101 V1004版本固件](https://docs.openluat.com/air8101/luatos/firmware/)(理论上最新版本固件也可以,如果使用最新版本的固件不可以,可以烧录V1004固件对比验证)
+2、[Air8000 V2011版本固件](https://docs.openluat.com/air8000/luatos/firmware/)(理论上最新版本固件也可以,如果使用最新版本的固件不可以,可以烧录V2011固件对比验证)
 
 3、PC端的串口工具,例如SSCOM、LLCOM等都可以;
 
@@ -146,7 +117,15 @@
 
 4、PC端浏览器访问[合宙TCP/UDP web测试工具](https://netlab.luatos.com/),点击 打开TCP SSL 按钮,会创建一个TCP SSL server,将server的地址和端口赋值给tcp_ssl_main.lua中的SERVER_ADDR和SERVER_PORT两个变量
 
-5、demo脚本代码wifi_app.lua中的wlan.connect("茶室-降功耗,找合宙!", "Air123456", 1),前两个参数,修改为自己测试时wifi热点的名称和密码;注意:仅支持2.4G的wifi,不支持5G的wifi
+5、demo脚本代码netdrv_device.lua中,按照自己的网卡需求启用对应的Lua文件
+
+- 如果需要单4G网卡,打开require "netdrv_4g",其余注释掉
+
+- 如果需要单WIFI STA网卡,打开require "netdrv_wifi",其余注释掉;同时netdrv_wifi.lua中的wlan.connect("茶室-降功耗,找合宙!", "Air123456", 1),前两个参数,修改为自己测试时wifi热点的名称和密码;注意:仅支持2.4G的wifi,不支持5G的wifi
+
+- 如果需要以太网卡,打开require "netdrv_eth_spi",其余注释掉
+
+- 如果需要多网卡,打开require "netdrv_multiple",其余注释掉;同时netdrv_multiple.lua中的ssid = "茶室-降功耗,找合宙!", password = "Air123456", 修改为自己测试时wifi热点的名称和密码;注意:仅支持2.4G的wifi,不支持5G的wifi
 
 6、Luatools烧录内核固件和修改后的demo脚本代码
 
@@ -175,10 +154,12 @@
 73656E642066726F6D20756172743A206B65726A6B6A7772
 ```
 
-12、在[合宙TCP/UDP web测试工具](https://netlab.luatos.com/)的发送编辑框内,输入一段数据,点击发送,在PC端的串口工具上可以接收到这段数据,并且也能看到是哪一个server发送的,类似于以下效果:
+11、在[合宙TCP/UDP web测试工具](https://netlab.luatos.com/)的发送编辑框内,输入一段数据,点击发送,在PC端的串口工具上可以接收到这段数据,并且也能看到是哪一个server发送的,类似于以下效果:
 
 ``` lua
 recv from tcp server: 123456798012345678901234567830
 recv from udp server: 123456798012345678901234567830   
 recv from tcp_ssl server: 123456789901234
 ```
+
+12、注意:第四路连接,连接的是baidu的https网站,连接成功后,Air8000每隔一段时间发数据给服务器,因为发送的不是http合法格式的数据,所以每隔一段时间服务器都会主动断开连接,断开连接后,Air8000会自动重连,如此循环,属于正常现象。

+ 6 - 1
module/Air8101/demo/socket/client/long_connection/main.lua

@@ -16,7 +16,12 @@
 - 串口应用功能模块uart_app.lua,通过uart1接收到串口数据,将串口数据增加send from uart: 前缀后发送给server;
 - 定时器应用功能模块timer_app.lua,定时产生数据,将数据增加send from timer:前缀后发送给server;
 4、每一路socket连接,client收到server数据后,将数据增加recv from tcp/udp/tcp ssl/tcp ssl ca(四选一)server: 前缀后,通过uart1发送出去;
-5、每一路socket连接,启动一个网络业务逻辑看门狗task,用来监控socket工作状态,如果连续长时间工作不正常,重启整个软件系统(后续补充);
+5、启动一个网络业务逻辑看门狗task,用来监控网络环境,如果连续长时间工作不正常,重启整个软件系统;
+6、netdrv_device:配置连接外网使用的网卡,目前支持以下四种选择(四选一)
+   (1) netdrv_wifi:WIFI STA网卡
+   (2) netdrv_eth_rmii:通过MAC层的rmii接口外挂PHY芯片(LAN8720Ai)的以太网卡
+   (3) netdrv_eth_spi:通过SPI外挂CH390H芯片的以太网卡
+   (4) netdrv_multiple:支持以上三种网卡,可以配置三种网卡的优先级
 
 更多说明参考本目录下的readme.md文件
 ]]

+ 2 - 2
module/Air8101/demo/socket/client/long_connection/netdrv/netdrv_wifi.lua

@@ -41,8 +41,8 @@ wlan.connect("茶室-降功耗,找合宙!", "Air123456", 1)
 
 --WIFI联网成功(做为STATION成功连接AP,并且获取到了IP地址)后,内核固件会产生一个"IP_READY"消息
 --各个功能模块可以订阅"IP_READY"消息实时处理WIFI联网成功的事件
---也可以在任何时刻调用socket.adapter(socket.dft())来获取WIFI网络是否连接成功
+--也可以在任何时刻调用socket.adapter(socket.LWIP_STA)来获取WIFI网络是否连接成功
 
 --WIFI断网后,内核固件会产生一个"IP_LOSE"消息
 --各个功能模块可以订阅"IP_LOSE"消息实时处理WIFI断网的事件
---也可以在任何时刻调用socket.adapter(socket.dft())来获取WIFI网络是否连接成功
+--也可以在任何时刻调用socket.adapter(socket.LWIP_STA)来获取WIFI网络是否连接成功

+ 1 - 1
module/Air8101/demo/socket/client/long_connection/netdrv_device.lua

@@ -9,7 +9,7 @@
 1、netdrv_wifi:socket.LWIP_STA,WIFI STA网卡;
 2、netdrv_ethernet_rmii:socket.LWIP_ETH,通过MAC层的rmii接口外挂PHY芯片(LAN8720Ai)的以太网卡;
 3、netdrv_ethernet_spi:socket.LWIP_USER1,通过SPI外挂CH390H芯片的以太网卡;
-4、netdrv_4G:socket.LWIP_USER0,通过SPI外挂4G模组的4G网卡;
+4、netdrv_4g:socket.LWIP_USER0,通过SPI外挂4G模组的4G网卡;
 5、netdrv_multi_network:可以配置多种网卡的优先级,按照优先级配置,使用其中一种网卡连接外网;
 
 根据自己的项目需求,只需要require以上五种中的一种即可;

+ 14 - 2
module/Air8101/demo/socket/client/long_connection/readme.md

@@ -146,7 +146,17 @@
 
 4、PC端浏览器访问[合宙TCP/UDP web测试工具](https://netlab.luatos.com/),点击 打开TCP SSL 按钮,会创建一个TCP SSL server,将server的地址和端口赋值给tcp_ssl_main.lua中的SERVER_ADDR和SERVER_PORT两个变量
 
-5、demo脚本代码wifi_app.lua中的wlan.connect("茶室-降功耗,找合宙!", "Air123456", 1),前两个参数,修改为自己测试时wifi热点的名称和密码;注意:仅支持2.4G的wifi,不支持5G的wifi
+5、demo脚本代码netdrv_device.lua中,按照自己的网卡需求启用对应的Lua文件
+
+- 如果需要单WIFI STA网卡,打开require "netdrv_wifi",其余注释掉;同时netdrv_wifi.lua中的wlan.connect("茶室-降功耗,找合宙!", "Air123456", 1),前两个参数,修改为自己测试时wifi热点的名称和密码;注意:仅支持2.4G的wifi,不支持5G的wifi
+
+- 如果需要RMII以太网卡,打开require "netdrv_eth_rmii",其余注释掉
+
+- 如果需要SPI以太网卡,打开require "netdrv_eth_spi",其余注释掉
+
+- 如果需要单4G网卡,打开require "netdrv_4g",其余注释掉
+
+- 如果需要多网卡,打开require "netdrv_multiple",其余注释掉;同时netdrv_multiple.lua中的ssid = "茶室-降功耗,找合宙!", password = "Air123456", 修改为自己测试时wifi热点的名称和密码;注意:仅支持2.4G的wifi,不支持5G的wifi
 
 6、Luatools烧录内核固件和修改后的demo脚本代码
 
@@ -175,10 +185,12 @@
 73656E642066726F6D20756172743A206B65726A6B6A7772
 ```
 
-12、在[合宙TCP/UDP web测试工具](https://netlab.luatos.com/)的发送编辑框内,输入一段数据,点击发送,在PC端的串口工具上可以接收到这段数据,并且也能看到是哪一个server发送的,类似于以下效果:
+11、在[合宙TCP/UDP web测试工具](https://netlab.luatos.com/)的发送编辑框内,输入一段数据,点击发送,在PC端的串口工具上可以接收到这段数据,并且也能看到是哪一个server发送的,类似于以下效果:
 
 ``` lua
 recv from tcp server: 123456798012345678901234567830
 recv from udp server: 123456798012345678901234567830   
 recv from tcp_ssl server: 123456789901234
 ```
+
+12、注意:第四路连接,连接的是baidu的https网站,连接成功后,Air8000每隔一段时间发数据给服务器,因为发送的不是http合法格式的数据,所以每隔一段时间服务器都会主动断开连接,断开连接后,Air8000会自动重连,如此循环,属于正常现象。