马亚丹 bb5033370c add:新增8000-ntp-demo hace 4 meses
..
netdrv bb5033370c add:新增8000-ntp-demo hace 4 meses
main.lua 7f2b9b41f2 update:修改8000-ntp-demo hace 4 meses
netdrv_device.lua bb5033370c add:新增8000-ntp-demo hace 4 meses
ntp_test.lua bb5033370c add:新增8000-ntp-demo hace 4 meses
readme.md bb5033370c add:新增8000-ntp-demo hace 4 meses

readme.md

功能模块介绍:

1、main.lua:主程序入口;

2、netdrv_device.lua:网卡驱动设备,可以配置使用netdrv文件夹内的五种网卡(单4g网卡,单wifi网卡,单spi以太网卡,多网卡,pc模拟器上的网卡)中的任何一种网卡;

3、netdrv文件夹:五种网卡,单4g网卡、单wifi网卡,、单spi以太网卡、多网卡、pc模拟器上的网卡,供netdrv_device.lua加载配置;

4、ntp_test.lua: 功能演示核心脚本,联网、时间同步、获取时间等,在main.lua中加载运行。

演示功能概述:

1.判断是否联网

2.网络就绪后开始时间同步

3.时间同步成功,获取本地时间和UTC时间,按默认间隔时间循环打印获取的时间信息

4.时间同步失败,打印提醒

演示硬件环境

netdrv_multi

1、Air8000开发板一块+可上网的sim卡一张+4g天线一根+wifi天线一根+网线一根:

  • sim卡插入开发板的sim卡槽

  • 天线装到开发板上

  • 网线一端插入开发板网口,另外一端连接可以上外网的路由器网口

2、TYPE-C USB数据线一根 ,Air8000开发板和数据线的硬件接线方式为:

  • Air8000开发板通过TYPE-C USB口供电;(外部供电/USB供电 拨动开关 拨到 USB供电一端)

  • TYPE-C USB数据线直接插到开发板的TYPE-C USB座子,另外一端连接电脑USB口;

演示软件环境

1、 Luatools下载调试工具

2、 固件版本:LuatOS-SoC_V2016_Air8000_1,固件地址,如有最新固件请用最新 https://docs.openluat.com/air8000/luatos/firmware/

3、 脚本文件: main.lua

ntp_test.lua

netdrv_device.lua

netdrv文件夹

4、 pc 系统 win11(win10 及以上)

演示核心步骤

1、搭建好硬件环境

2、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

3、如果使用自定义NTP服务器 地址,脚本文件ntp_test.lua中,在ntp_servers表中修改为自己的服务器地址,并在sntp_sync_loop()函数中,注释sntp时间同步方式2,打开方式1

4、Luatools烧录内核固件和修改后的demo脚本代码

5、烧录成功后,代码会自动运行,查看打印日志,如果正常运行,会打印网络就绪、时间同步成功、本地时间以及URC时间等信息,如下log显示:

[2025-11-20 15:13:07.472][000000000.677] I/user.main ntp_demo 001.000.000
[2025-11-20 15:13:07.520][000000000.733] W/user.sntp wait IP_READY 1 3
[2025-11-20 15:13:08.380][000000001.734] W/user.sntp wait IP_READY 1 3
[2025-11-20 15:13:09.377][000000002.735] W/user.sntp wait IP_READY 1 3
[2025-11-20 15:13:09.872][000000003.184] D/mobile cid1, state0
[2025-11-20 15:13:09.874][000000003.185] D/mobile bearer act 0, result 0
[2025-11-20 15:13:09.880][000000003.185] D/mobile NETIF_LINK_ON -> IP_READY
[2025-11-20 15:13:09.883][000000003.186] I/user.netdrv_4g.ip_ready_func IP_READY 10.151.30.113 255.255.255.255 0.0.0.0 nil
[2025-11-20 15:13:09.889][000000003.187] I/user.sntp recv IP_READY 1 3
[2025-11-20 15:13:09.898][000000003.187] I/user.sntp 开始同步:
[2025-11-20 15:13:09.906][000000003.188] D/sntp query ntp.aliyun.com
[2025-11-20 15:13:09.910][000000003.188] dns_run 676:ntp.aliyun.com state 0 id 1 ipv6 0 use dns server0, try 0
[2025-11-20 15:13:09.914][000000003.237] dns_run 693:dns all done ,now stop
[2025-11-20 15:13:09.922][000000003.249] D/mobile TIME_SYNC 0
[2025-11-20 15:13:09.926][000000003.250] I/user.sntp 时间同步成功
[2025-11-20 15:13:09.929][000000003.251] I/user.sntp 本地时间字符串 Thu Nov 20 15:13:10 2025
[2025-11-20 15:13:09.935][000000003.251] I/user.sntp UTC时间字符串 Thu Nov 20 07:13:10 2025
[2025-11-20 15:13:09.940][000000003.252] I/user.sntp 格式化本地时间字符串 2025-11-20 15:13:10
[2025-11-20 15:13:09.943][000000003.253] I/user.sntp 格式化UTC时间字符串 2025-11-20 07:13:10
[2025-11-20 15:13:09.947][000000003.254] I/user.sntp RTC时钟(UTC) {"year":2025,"min":13,"hour":7,"mon":11,"sec":10,"day":20}
[2025-11-20 15:13:09.952][000000003.254] I/user.sntp 本地时间戳 1763622790
[2025-11-20 15:13:09.957][000000003.255] I/user.sntp 本地时间结构 {"wday":5,"min":13,"yday":324,"hour":15,"isdst":false,"year":2025,"month":11,"sec":10,"day":20}
[2025-11-20 15:13:09.960][000000003.255] I/user.sntp 结构时间转时间戳 1763651590
[2025-11-20 15:13:09.963][000000003.256] I/user.tm数据 {"sms":0,"tms":256,"tsec":3,"lms":256,"ndeley":0,"lsec":3,"ssec":0}
[2025-11-20 15:13:09.973][000000003.257] I/user.sntp 高精度时间戳 3.256
[2025-11-20 15:13:09.977][000000003.319] D/sntp Unix timestamp: 1763622790
[2025-11-20 15:13:07.472][000000000.677] I/user.main ntp_demo 001.000.000
[2025-11-20 15:13:07.520][000000000.733] W/user.sntp wait IP_READY 1 3
[2025-11-20 15:13:08.380][000000001.734] W/user.sntp wait IP_READY 1 3
[2025-11-20 15:13:09.377][000000002.735] W/user.sntp wait IP_READY 1 3
[2025-11-20 15:13:09.872][000000003.184] D/mobile cid1, state0
[2025-11-20 15:13:09.874][000000003.185] D/mobile bearer act 0, result 0
[2025-11-20 15:13:09.880][000000003.185] D/mobile NETIF_LINK_ON -> IP_READY
[2025-11-20 15:13:09.883][000000003.186] I/user.netdrv_4g.ip_ready_func IP_READY 10.151.30.113 255.255.255.255 0.0.0.0 nil
[2025-11-20 15:13:09.889][000000003.187] I/user.sntp recv IP_READY 1 3
[2025-11-20 15:13:09.898][000000003.187] I/user.sntp 开始同步:
[2025-11-20 15:13:09.906][000000003.188] D/sntp query ntp.aliyun.com
[2025-11-20 15:13:09.910][000000003.188] dns_run 676:ntp.aliyun.com state 0 id 1 ipv6 0 use dns server0, try 0
[2025-11-20 15:13:09.914][000000003.237] dns_run 693:dns all done ,now stop
[2025-11-20 15:13:09.922][000000003.249] D/mobile TIME_SYNC 0
[2025-11-20 15:13:09.926][000000003.250] I/user.sntp 时间同步成功
[2025-11-20 15:13:09.929][000000003.251] I/user.sntp 本地时间字符串 Thu Nov 20 15:13:10 2025
[2025-11-20 15:13:09.935][000000003.251] I/user.sntp UTC时间字符串 Thu Nov 20 07:13:10 2025
[2025-11-20 15:13:09.940][000000003.252] I/user.sntp 格式化本地时间字符串 2025-11-20 15:13:10
[2025-11-20 15:13:09.943][000000003.253] I/user.sntp 格式化UTC时间字符串 2025-11-20 07:13:10
[2025-11-20 15:13:09.947][000000003.254] I/user.sntp RTC时钟(UTC) {"year":2025,"min":13,"hour":7,"mon":11,"sec":10,"day":20}
[2025-11-20 15:13:09.952][000000003.254] I/user.sntp 本地时间戳 1763622790
[2025-11-20 15:13:09.957][000000003.255] I/user.sntp 本地时间结构 {"wday":5,"min":13,"yday":324,"hour":15,"isdst":false,"year":2025,"month":11,"sec":10,"day":20}
[2025-11-20 15:13:09.960][000000003.255] I/user.sntp 结构时间转时间戳 1763651590
[2025-11-20 15:13:09.963][000000003.256] I/user.tm数据 {"sms":0,"tms":256,"tsec":3,"lms":256,"ndeley":0,"lsec":3,"ssec":0}
[2025-11-20 15:13:09.973][000000003.257] I/user.sntp 高精度时间戳 3.256
[2025-11-20 15:13:09.977][000000003.319] D/sntp Unix timestamp: 1763622790