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

update: demo集中到一起,重复例程待清理

chenxuuu 4 лет назад
Родитель
Сommit
b218ff5470
100 измененных файлов с 1132 добавлено и 1132 удалено
  1. 36 36
      demo/adc/Air101/main.lua
  2. 0 0
      demo/adc/Air302/main.lua
  3. 0 0
      demo/adc/Air724/main.lua
  4. 0 0
      demo/airkiss/Air640w/main.lua
  5. 0 0
      demo/aliyun/Air302/main.lua
  6. 0 0
      demo/aliyun_autoreg/Air302/main.lua
  7. 0 0
      demo/aliyun_autoreg/Air640w/main.lua
  8. 0 0
      demo/camera/Air724/main.lua
  9. 46 46
      demo/crypto/Air101/main.lua
  10. 0 0
      demo/crypto/Air302/main.lua
  11. 0 0
      demo/crypto/Air724/main.lua
  12. 182 182
      demo/ctiot/Air302/main.lua
  13. 0 0
      demo/dbg/Air640w/main.lua
  14. 0 0
      demo/dht12/Air302/main.lua
  15. 0 0
      demo/dht12/Air640w/main.lua
  16. 51 51
      demo/disp/Air101/main.lua
  17. 0 0
      demo/disp/Air302/main.lua
  18. 0 0
      demo/disp/Air640w/main.lua
  19. 0 0
      demo/disp/Air724/main.lua
  20. 0 0
      demo/ds18b20/Air302/main.lua
  21. 0 0
      demo/ds18b20/Air640w/main.lua
  22. 0 0
      demo/echo/Air302/main.lua
  23. 0 0
      demo/eink/Air302/main.lua
  24. 0 0
      demo/eink_weather/Air302/main.lua
  25. 0 0
      demo/fatfs/Air302/main.lua
  26. 49 49
      demo/fs/Air101/main.lua
  27. 0 0
      demo/fs/Air302/main.lua
  28. 0 0
      demo/fs_sdcard/Air640w/main.lua
  29. 36 36
      demo/gpio/Air101/main.lua
  30. 0 0
      demo/gpio/Air302/main.lua
  31. 0 0
      demo/gpio/Air724/main.lua
  32. 27 27
      demo/gpio_irq/Air101/main.lua
  33. 0 0
      demo/gpio_irq/Air302/main.lua
  34. 0 0
      demo/gpio_irq/Air640w/main.lua
  35. 0 0
      demo/hello_world/Air640w/main.lua
  36. 0 0
      demo/hi/Air724/main.lua
  37. 0 0
      demo/http/Air302/main.lua
  38. 0 0
      demo/http_download/Air302/main.lua
  39. 0 0
      demo/http_simple/Air640w/main.lua
  40. 0 0
      demo/i2c/Air101/SI7021.lua
  41. 0 0
      demo/i2c/Air101/main.lua
  42. 0 0
      demo/i2c/Air302/24c02main.lua
  43. 0 0
      demo/i2c/Air302/main.lua
  44. 0 0
      demo/i2c/Air724/aht10/main.lua
  45. 0 0
      demo/i2c/Air724/sht30/main.lua
  46. 0 0
      demo/json/Air640w/main.lua
  47. 47 47
      demo/lcd/Air101/main.lua
  48. 0 0
      demo/libcoap/Air302/main.lua
  49. 0 0
      demo/libgnss/Air302/main.lua
  50. 0 0
      demo/libgnss_udp/Air302/main.lua
  51. 0 0
      demo/lte/Air724/main.lua
  52. 46 46
      demo/lvgl/Air101/main.lua
  53. 0 0
      demo/meminfo/Air724/main.lua
  54. 0 0
      demo/memtest/Air724/main.lua
  55. 0 0
      demo/modbus_relay2/Air640w/main.lua
  56. 0 0
      demo/mqtt/Air302/main.lua
  57. 0 0
      demo/mqtt/Air640w/main.lua
  58. 0 0
      demo/mqtt2/Air302/main.lua
  59. 0 0
      demo/mqtt2/Air640w/main.lua
  60. 0 0
      demo/mqtt2/Air640w/my_demo.lua
  61. 0 0
      demo/mqtt2/Air724/main.lua
  62. 0 0
      demo/netinfo/Air302/main.lua
  63. 0 0
      demo/ntp/Air640w/main.lua
  64. 0 0
      demo/ota/Air302/main.lua
  65. 0 0
      demo/ota/Air640w/main.lua
  66. 0 0
      demo/pm/Air101/main.lua
  67. 0 0
      demo/pm/Air302/main.lua
  68. 0 0
      demo/psm_tcp/Air302/main.lua
  69. 40 40
      demo/pwm/Air101/main.lua
  70. 0 0
      demo/pwm/Air302/main.lua
  71. 0 0
      demo/pwm/Air640w/main.lua
  72. 37 37
      demo/rtc/Air101/main.lua
  73. 0 0
      demo/sdcard/Air724/main.lua
  74. 0 0
      demo/sdio/Air101/main.lua
  75. 0 0
      demo/sfud/Air101/main.lua
  76. 0 0
      demo/sht20/Air302/main.lua
  77. 0 0
      demo/sht30/Air302/main.lua
  78. 0 0
      demo/socket (2)/Air640w/main.lua
  79. 0 0
      demo/socket/Air640w/main.lua
  80. 0 0
      demo/socket/Air724/main.lua
  81. 0 0
      demo/socket_uart/Air724/main.lua
  82. 0 0
      demo/spi/Air302/main.lua
  83. 0 0
      demo/statem/Air101/main.lua
  84. 0 0
      demo/tlink_udp_ds18b20/Air302/main.lua
  85. 0 0
      demo/tls/Air724/main.lua
  86. 117 117
      demo/u8g2/Air101/main.lua
  87. 112 112
      demo/u8g2/Air302/main.lua
  88. 112 112
      demo/u8g2/Air640w/main.lua
  89. 148 148
      demo/u8g2/Air724/main.lua
  90. 46 46
      demo/uart/Air101/main.lua
  91. 0 0
      demo/uart/Air101/uartTimeout/main.lua
  92. 0 0
      demo/uart/Air101/uartTimeout/readme.txt
  93. 0 0
      demo/uart/Air302/main.lua
  94. 0 0
      demo/uart/Air724/main.lua
  95. 0 0
      demo/uart_irq/Air640w/main.lua
  96. 0 0
      demo/udp/Air302/main.lua
  97. 0 0
      demo/udp/Air640w/main.lua
  98. 0 0
      demo/udp_coap/Air640w/main.lua
  99. 0 0
      demo/udp_uart/Air302/main.lua
  100. 0 0
      demo/update/Air302/main.lua

+ 36 - 36
bsp/air101/demo/adc/main.lua → demo/adc/Air101/main.lua

@@ -1,36 +1,36 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "adcdemo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- 一定要添加sys.lua !!!!
-local sys = require "sys"
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-sys.taskInit(function()
-    while 1 do
-        adc.open(0) -- 模块上的ADC0脚-PA1, 0~2.4v,不要超过范围使用!!!
-        adc.open(1) -- 模块上的ADC1脚-PA4, 0~2.4v,不要超过范围使用!!!
-        adc.open(10) -- CPU温度
-        sys.wait(1000)
-        log.debug("adc", "adc0", adc.read(0))
-        log.debug("adc", "adc1", adc.read(1))
-        log.debug("adc", "adc_temp", adc.read(10))
-        -- 使用完毕后关闭,可以使得休眠电流更低.
-        adc.close(0)
-        adc.close(1)
-        adc.close(10)
-    end
-    
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "adcdemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- 一定要添加sys.lua !!!!
+local sys = require "sys"
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+sys.taskInit(function()
+    while 1 do
+        adc.open(0) -- 模块上的ADC0脚-PA1, 0~2.4v,不要超过范围使用!!!
+        adc.open(1) -- 模块上的ADC1脚-PA4, 0~2.4v,不要超过范围使用!!!
+        adc.open(10) -- CPU温度
+        sys.wait(1000)
+        log.debug("adc", "adc0", adc.read(0))
+        log.debug("adc", "adc1", adc.read(1))
+        log.debug("adc", "adc_temp", adc.read(10))
+        -- 使用完毕后关闭,可以使得休眠电流更低.
+        adc.close(0)
+        adc.close(1)
+        adc.close(10)
+    end
+    
+end)
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/adc/main.lua → demo/adc/Air302/main.lua


+ 0 - 0
bsp/air724/demo/adc/main.lua → demo/adc/Air724/main.lua


+ 0 - 0
bsp/air640w/demo/91.airkiss/main.lua → demo/airkiss/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/aliyun/main.lua → demo/aliyun/Air302/main.lua


+ 0 - 0
bsp/air302/demo/aliyun_autoreg/main.lua → demo/aliyun_autoreg/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/72.aliyun_autoreg/main.lua → demo/aliyun_autoreg/Air640w/main.lua


+ 0 - 0
bsp/air724/demo/camera/main.lua → demo/camera/Air724/main.lua


+ 46 - 46
bsp/air101/demo/crypto/main.lua → demo/crypto/Air101/main.lua

@@ -1,46 +1,46 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "cryptodemo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-sys.timerLoopStart(function()
-    --sys.wait(3000) -- 开机后展示crypto功能
-
-    -- MD5,输出结果已经hex编码
-    log.info("md5", crypto.md5("abc"))
-    log.info("hmac_md5", crypto.hmac_md5("abc", "1234567890"))
-
-    -- SHA1,输出结果已经hex编码
-    log.info("sha1", crypto.sha1("abc"))
-    log.info("hmac_sha1", crypto.hmac_sha1("abc", "1234567890"))
-
-    -- SHA256,输出结果已经hex编码
-    log.info("sha256", crypto.sha256("abc"))
-    log.info("hmac_sha256", crypto.hmac_sha256("abc", "1234567890"))
-
-    -- SHA512,输出结果已经hex编码
-    log.info("sha512", crypto.sha512("abc"))
-    log.info("hmac_sha512", crypto.hmac_sha512("abc", "1234567890"))
-
-
-end, 2000)
-
-sys.taskInit(function()
-    while 1 do
-        sys.wait(500)
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "cryptodemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+sys.timerLoopStart(function()
+    --sys.wait(3000) -- 开机后展示crypto功能
+
+    -- MD5,输出结果已经hex编码
+    log.info("md5", crypto.md5("abc"))
+    log.info("hmac_md5", crypto.hmac_md5("abc", "1234567890"))
+
+    -- SHA1,输出结果已经hex编码
+    log.info("sha1", crypto.sha1("abc"))
+    log.info("hmac_sha1", crypto.hmac_sha1("abc", "1234567890"))
+
+    -- SHA256,输出结果已经hex编码
+    log.info("sha256", crypto.sha256("abc"))
+    log.info("hmac_sha256", crypto.hmac_sha256("abc", "1234567890"))
+
+    -- SHA512,输出结果已经hex编码
+    log.info("sha512", crypto.sha512("abc"))
+    log.info("hmac_sha512", crypto.hmac_sha512("abc", "1234567890"))
+
+
+end, 2000)
+
+sys.taskInit(function()
+    while 1 do
+        sys.wait(500)
+    end
+end)
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/crypto/main.lua → demo/crypto/Air302/main.lua


+ 0 - 0
bsp/air724/demo/crypto/main.lua → demo/crypto/Air724/main.lua


+ 182 - 182
bsp/air302/demo/ctiot/main.lua → demo/ctiot/Air302/main.lua

@@ -1,183 +1,183 @@
--- ctiot库API
--- ctiot.init() 
--- 初始化引擎,开机后只需要一次,没有参数输入输出
--- ctiot.ep(new_ep) 
--- 设置读取用户自定义EP,如果不设置,则使用IMEI,输入新的EP,同时输出当前EP,
--- 输入nil,则为读取,输入"",清除EP
--- ctiot.param(server_ip, server_port, lifetime)
--- 设置读取必要的参数,分别为服务器IP,端口和保活时间
--- 输入nil,则为读取参数
--- ctiot.connect()
--- 启动连接服务器
--- ctiot.disconnect()
--- 断开服务器
--- ctiot.write(data, mode, seq)
--- 发送数据,输入参数为数据,发送模式,发送序号
--- 发送模式为ctiot.CON, ctiot.NON, ctiot.NON_REL, ctiot.CON_REL
--- 发送序号只是一个标识,不会影响发送的数据和模式,在发送结果回调时会返回
--- ctiot.isReady()
--- 检测当前ctiot连接状态是否可以发送数据
--- 0可以,其他都不可以
-PROJECT = "ctiot"
-VERSION = "1.0.0"
-local TAG="ctiot"
--- sys库是标配
-_G.sys = require("sys")
-
-local function cb_rx(data)
-    log.info(TAG, "rx", data:toHex())
-end
-
-local function cb_dereg(error, error_code, param)
-    log.info(TAG, "dereg", error, error_code, param)
-end
-
-local function cb_wakeup(error, error_code, param)
-    log.info(TAG, "wakeup", error, error_code, param)
-end
-
-local function cb_fota(error, error_code, param)
-    log.info(TAG, "fota", error, error_code, param)
-end
-
-local function cb_other(error, error_code, param)
-    log.info(TAG, "other", error, error_code, param)
-end
-
---sys.subscribe("CTIOT_TX", cb_tx)
-sys.subscribe("CTIOT_RX", cb_rx)
---sys.subscribe("CTIOT_REG", cb_reg)
---sys.subscribe("CTIOT_DEREG", cb_dereg)
---sys.subscribe("CTIOT_WAKEUP", cb_wakeup)
-sys.subscribe("CTIOT_OTHER", cb_other)
-sys.subscribe("CTIOT_FOTA", cb_fota)
-
-local function send_test()
-    log.info(TAG, "test tx")
-    local result, tx_error, error_code, param
-    --发送的数据请按照自己的profile修改
-    --发送数据,并要求服务器应答
-    result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON, 0)
-    --发送数据,并要求服务器应答,序号为11
-    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON, 11)
-    --发送数据,不需要服务器应答
-    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON, 0)
-    --发送数据,不需要服务器应答,序号为23
-    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON, 23)
-    --发送数据,不需要服务器应答,发送完成后立刻释放RRC,加快进入休眠的速度
-    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON_REL, 0)
-    --发送数据,不需要服务器应答,发送完成后立刻释放RRC,加快进入休眠的速度,序号为56
-    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON_REL, 56)
-    --发送数据,并要求服务器应答,接收到应答后立刻释放RRC,加快进入休眠的速度
-    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON_REL, 0)
-    --发送数据,并要求服务器应答,接收到应答后立刻释放RRC,加快进入休眠的速度,序号为255,序号最大255
-    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON_REL, 255)
-    log.info(TAG, result, tx_error)
-    result, tx_error, error_code, param = sys.waitUntilExt("CTIOT_TX", 20000)
-    if result then
-        if not tx_error then
-            log.info(TAG, "tx ok", param)
-        else
-            log.info(TAG, "tx fail", error_code, param)
-            ctiot.disconnect()
-            result, dereg_error, error_code, param = sys.waitUntilExt("CTIOT_DEREG", 30000)
-            ctiot.connect()
-            while true do
-                result, error, error_code, param = sys.waitUntilExt("CTIOT_REG", 60000)
-                if not result and error==nil then
-                    log.info(TAG, "reg wait timeout")
-                    break
-                end
-                log.info(TAG, result, error, error_code, param)
-                if not error and param > 0 then
-                    log.info(TAG, "reg ok")
-                    isConnected = true
-                    break
-                end
-                if error then
-                    log.info(TAG, "reg fail")
-                    break
-                end
-            end
-        end
-    else
-        log.info(TAG, "tx no work")
-    end
-
-end
-
-local function task()
-    local inSleep = false
-    local isConnected = false
-    local result, error, error_code, param
-    if pm.lastReson() ~= 0 then
-        --如果不是自己的定时器唤醒,继续睡
-        if pm.dtimerCheck(0) then
-            pm.request(pm.HIB)
-            return
-        end
-        --唤醒的不需要处理
-        pm.request(pm.IDLE)
-        log.info(TAG, "after", ctiot.ep(), ctiot.param())
-		--一定要等待一下,否则会重启!!!
-		sys.wait(1000)
-    else
-        --设置自定义EP,如果不设置,则使用IMEI
-        --local ep="867814046436271"
-        --local ep="qweasdzxcrtyfgh"
-        --if ctiot.ep() ~= ep then
-            --ctiot.ep(ep)
-        --end
-        ctiot.ep(nil)
-        --设置服务器IP,端口,保活时间
-        --ctiot.param("180.101.147.115", 5683, 300)
-        ctiot.param("221.229.214.202", 5683, 300)
-        local ip, port, keeptime = ctiot.param()
-        log.info(TAG, "set param", ip, port, keeptime)
-    end
-	while not socket.isReady() do 
-		log.info("net", "wait for network ready")
-		sys.waitUntil("NET_READY", 1000)
-    end
-
-    --无论是重启还是从深度休眠唤醒,必须重新启动连接
-	ctiot.connect()
-	while true do
-		result, error, error_code, param = sys.waitUntilExt("CTIOT_REG", 60000)
-		if not result and error==nil then
-			log.info(TAG, "reg wait timeout")
-			break
-		end
-		log.info(TAG, result, error, error_code, param)
-		if not error and param > 0 then
-			log.info(TAG, "reg ok")
-			isConnected = true
-			break
-		end
-		if error then
-			log.info(TAG, "reg fail")
-			break
-		end
-	end
-
-
-    if isConnected then
-        send_test()
-        --凡是不进入深度休眠的,221.229.214.202 这个IP必须在保活时间内update一下
-        --ctiot.update()
-        --result, error, error_code, param = sys.waitUntilExt("CTIOT_UPDATE", 60000)
-    end
-    -- 30秒后唤醒,发个测试数据
-    if not inSleep then
-        pm.dtimerStart(0, 30000)
-        inSleep = true
-    end
-    -- 我要睡了!!! 事实上还会等几秒, 这时候服务器还能下发数据
-    pm.request(pm.HIB)
-    -- 退出CTIOT
-    -- ctiot.dereg()
-    -- result, dereg_error, error_code, param = sys.waitUntilExt("CTIOT_DEREG", 30000)
-end
-ctiot.init()
-sys.taskInit(task)
+-- ctiot库API
+-- ctiot.init() 
+-- 初始化引擎,开机后只需要一次,没有参数输入输出
+-- ctiot.ep(new_ep) 
+-- 设置读取用户自定义EP,如果不设置,则使用IMEI,输入新的EP,同时输出当前EP,
+-- 输入nil,则为读取,输入"",清除EP
+-- ctiot.param(server_ip, server_port, lifetime)
+-- 设置读取必要的参数,分别为服务器IP,端口和保活时间
+-- 输入nil,则为读取参数
+-- ctiot.connect()
+-- 启动连接服务器
+-- ctiot.disconnect()
+-- 断开服务器
+-- ctiot.write(data, mode, seq)
+-- 发送数据,输入参数为数据,发送模式,发送序号
+-- 发送模式为ctiot.CON, ctiot.NON, ctiot.NON_REL, ctiot.CON_REL
+-- 发送序号只是一个标识,不会影响发送的数据和模式,在发送结果回调时会返回
+-- ctiot.isReady()
+-- 检测当前ctiot连接状态是否可以发送数据
+-- 0可以,其他都不可以
+PROJECT = "ctiot"
+VERSION = "1.0.0"
+local TAG="ctiot"
+-- sys库是标配
+_G.sys = require("sys")
+
+local function cb_rx(data)
+    log.info(TAG, "rx", data:toHex())
+end
+
+local function cb_dereg(error, error_code, param)
+    log.info(TAG, "dereg", error, error_code, param)
+end
+
+local function cb_wakeup(error, error_code, param)
+    log.info(TAG, "wakeup", error, error_code, param)
+end
+
+local function cb_fota(error, error_code, param)
+    log.info(TAG, "fota", error, error_code, param)
+end
+
+local function cb_other(error, error_code, param)
+    log.info(TAG, "other", error, error_code, param)
+end
+
+--sys.subscribe("CTIOT_TX", cb_tx)
+sys.subscribe("CTIOT_RX", cb_rx)
+--sys.subscribe("CTIOT_REG", cb_reg)
+--sys.subscribe("CTIOT_DEREG", cb_dereg)
+--sys.subscribe("CTIOT_WAKEUP", cb_wakeup)
+sys.subscribe("CTIOT_OTHER", cb_other)
+sys.subscribe("CTIOT_FOTA", cb_fota)
+
+local function send_test()
+    log.info(TAG, "test tx")
+    local result, tx_error, error_code, param
+    --发送的数据请按照自己的profile修改
+    --发送数据,并要求服务器应答
+    result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON, 0)
+    --发送数据,并要求服务器应答,序号为11
+    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON, 11)
+    --发送数据,不需要服务器应答
+    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON, 0)
+    --发送数据,不需要服务器应答,序号为23
+    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON, 23)
+    --发送数据,不需要服务器应答,发送完成后立刻释放RRC,加快进入休眠的速度
+    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON_REL, 0)
+    --发送数据,不需要服务器应答,发送完成后立刻释放RRC,加快进入休眠的速度,序号为56
+    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.NON_REL, 56)
+    --发送数据,并要求服务器应答,接收到应答后立刻释放RRC,加快进入休眠的速度
+    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON_REL, 0)
+    --发送数据,并要求服务器应答,接收到应答后立刻释放RRC,加快进入休眠的速度,序号为255,序号最大255
+    --result, tx_error = ctiot.write(pack.pack("<bbA", 0x00,0x05, "hello"), ctiot.CON_REL, 255)
+    log.info(TAG, result, tx_error)
+    result, tx_error, error_code, param = sys.waitUntilExt("CTIOT_TX", 20000)
+    if result then
+        if not tx_error then
+            log.info(TAG, "tx ok", param)
+        else
+            log.info(TAG, "tx fail", error_code, param)
+            ctiot.disconnect()
+            result, dereg_error, error_code, param = sys.waitUntilExt("CTIOT_DEREG", 30000)
+            ctiot.connect()
+            while true do
+                result, error, error_code, param = sys.waitUntilExt("CTIOT_REG", 60000)
+                if not result and error==nil then
+                    log.info(TAG, "reg wait timeout")
+                    break
+                end
+                log.info(TAG, result, error, error_code, param)
+                if not error and param > 0 then
+                    log.info(TAG, "reg ok")
+                    isConnected = true
+                    break
+                end
+                if error then
+                    log.info(TAG, "reg fail")
+                    break
+                end
+            end
+        end
+    else
+        log.info(TAG, "tx no work")
+    end
+
+end
+
+local function task()
+    local inSleep = false
+    local isConnected = false
+    local result, error, error_code, param
+    if pm.lastReson() ~= 0 then
+        --如果不是自己的定时器唤醒,继续睡
+        if pm.dtimerCheck(0) then
+            pm.request(pm.HIB)
+            return
+        end
+        --唤醒的不需要处理
+        pm.request(pm.IDLE)
+        log.info(TAG, "after", ctiot.ep(), ctiot.param())
+		--一定要等待一下,否则会重启!!!
+		sys.wait(1000)
+    else
+        --设置自定义EP,如果不设置,则使用IMEI
+        --local ep="867814046436271"
+        --local ep="qweasdzxcrtyfgh"
+        --if ctiot.ep() ~= ep then
+            --ctiot.ep(ep)
+        --end
+        ctiot.ep(nil)
+        --设置服务器IP,端口,保活时间
+        --ctiot.param("180.101.147.115", 5683, 300)
+        ctiot.param("221.229.214.202", 5683, 300)
+        local ip, port, keeptime = ctiot.param()
+        log.info(TAG, "set param", ip, port, keeptime)
+    end
+	while not socket.isReady() do 
+		log.info("net", "wait for network ready")
+		sys.waitUntil("NET_READY", 1000)
+    end
+
+    --无论是重启还是从深度休眠唤醒,必须重新启动连接
+	ctiot.connect()
+	while true do
+		result, error, error_code, param = sys.waitUntilExt("CTIOT_REG", 60000)
+		if not result and error==nil then
+			log.info(TAG, "reg wait timeout")
+			break
+		end
+		log.info(TAG, result, error, error_code, param)
+		if not error and param > 0 then
+			log.info(TAG, "reg ok")
+			isConnected = true
+			break
+		end
+		if error then
+			log.info(TAG, "reg fail")
+			break
+		end
+	end
+
+
+    if isConnected then
+        send_test()
+        --凡是不进入深度休眠的,221.229.214.202 这个IP必须在保活时间内update一下
+        --ctiot.update()
+        --result, error, error_code, param = sys.waitUntilExt("CTIOT_UPDATE", 60000)
+    end
+    -- 30秒后唤醒,发个测试数据
+    if not inSleep then
+        pm.dtimerStart(0, 30000)
+        inSleep = true
+    end
+    -- 我要睡了!!! 事实上还会等几秒, 这时候服务器还能下发数据
+    pm.request(pm.HIB)
+    -- 退出CTIOT
+    -- ctiot.dereg()
+    -- result, dereg_error, error_code, param = sys.waitUntilExt("CTIOT_DEREG", 30000)
+end
+ctiot.init()
+sys.taskInit(task)
 sys.run()

+ 0 - 0
bsp/air640w/demo/199.dbg/main.lua → demo/dbg/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/dht12/main.lua → demo/dht12/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/12.dht12/main.lua → demo/dht12/Air640w/main.lua


+ 51 - 51
bsp/air101/demo/disp/main.lua → demo/disp/Air101/main.lua

@@ -1,51 +1,51 @@
-
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "dispdemo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-----------------------------------------------------------------------
--- 对接SSD1306
-function display_str(str)
-    disp.clear()
-    disp.drawStr(str, 1, 18)
-    disp.update()
-end
-
-function ui_update()
-    disp.clear() -- 清屏
-
-    disp.drawStr(os.date("%Y-%m-%d %H:%M:%S"), 1, 12) -- 写日期
-
-    disp.drawStr("Luat@Air101" .. " " .. _VERSION, 1, 24) -- 写版本号
-
-    disp.update()
-end
-
--- 初始化显示屏
-log.info("disp", "init ssd1306") -- log库是内置库,内置库均不需要require
-disp.init({mode="i2c_sw", pin0=1, pin1=4}) -- 通过PA1 SLK/PA4 SDA模拟, 也可以用硬件i2c脚
-disp.setFont(1) -- 启用中文字体,文泉驿点阵宋体 12x12
-display_str("启动中 ...")
-
-sys.taskInit(function()
-    while 1 do
-        sys.wait(1000)
-        log.info("disp", "ui update", rtos.meminfo()) -- rtos是也是内置库
-        ui_update()
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "dispdemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+----------------------------------------------------------------------
+-- 对接SSD1306
+function display_str(str)
+    disp.clear()
+    disp.drawStr(str, 1, 18)
+    disp.update()
+end
+
+function ui_update()
+    disp.clear() -- 清屏
+
+    disp.drawStr(os.date("%Y-%m-%d %H:%M:%S"), 1, 12) -- 写日期
+
+    disp.drawStr("Luat@Air101" .. " " .. _VERSION, 1, 24) -- 写版本号
+
+    disp.update()
+end
+
+-- 初始化显示屏
+log.info("disp", "init ssd1306") -- log库是内置库,内置库均不需要require
+disp.init({mode="i2c_sw", pin0=1, pin1=4}) -- 通过PA1 SLK/PA4 SDA模拟, 也可以用硬件i2c脚
+disp.setFont(1) -- 启用中文字体,文泉驿点阵宋体 12x12
+display_str("启动中 ...")
+
+sys.taskInit(function()
+    while 1 do
+        sys.wait(1000)
+        log.info("disp", "ui update", rtos.meminfo()) -- rtos是也是内置库
+        ui_update()
+    end
+end)
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/disp/main.lua → demo/disp/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/60.disp/main.lua → demo/disp/Air640w/main.lua


+ 0 - 0
bsp/air724/demo/disp/main.lua → demo/disp/Air724/main.lua


+ 0 - 0
bsp/air302/demo/ds18b20/main.lua → demo/ds18b20/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/13.ds18b20/main.lua → demo/ds18b20/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/echo/main.lua → demo/echo/Air302/main.lua


+ 0 - 0
bsp/air302/demo/eink/main.lua → demo/eink/Air302/main.lua


+ 0 - 0
bsp/air302/demo/eink_weather/main.lua → demo/eink_weather/Air302/main.lua


+ 0 - 0
bsp/air302/demo/fatfs/main.lua → demo/fatfs/Air302/main.lua


+ 49 - 49
bsp/air101/demo/fs/main.lua → demo/fs/Air101/main.lua

@@ -1,49 +1,49 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "fsdemo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-local function fs_test()
-    local f = io.open("/boot_time", "rb")
-    local c = 0
-    if f then
-        local data = f:read("*a")
-        log.info("fs", "data", data, data:toHex())
-        c = tonumber(data)
-        f:close()
-    end
-    log.info("fs", "boot count", c)
-    c = c + 1
-    f = io.open("/boot_time", "wb")
-    --if f ~= nil then
-    log.info("fs", "write c to file", c, tostring(c))
-    f:write(tostring(c))
-    f:close()
-    --end
-
-    if fs then
-        log.info("fsstat", fs.fsstat("/"))
-    end
-end
-
-fs_test() -- 每次开机,把记录的数值+1
-
-sys.taskInit(function()
-    while 1 do
-        sys.wait(500)
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "fsdemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+local function fs_test()
+    local f = io.open("/boot_time", "rb")
+    local c = 0
+    if f then
+        local data = f:read("*a")
+        log.info("fs", "data", data, data:toHex())
+        c = tonumber(data)
+        f:close()
+    end
+    log.info("fs", "boot count", c)
+    c = c + 1
+    f = io.open("/boot_time", "wb")
+    --if f ~= nil then
+    log.info("fs", "write c to file", c, tostring(c))
+    f:write(tostring(c))
+    f:close()
+    --end
+
+    if fs then
+        log.info("fsstat", fs.fsstat("/"))
+    end
+end
+
+fs_test() -- 每次开机,把记录的数值+1
+
+sys.taskInit(function()
+    while 1 do
+        sys.wait(500)
+    end
+end)
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/fs/main.lua → demo/fs/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/30.fs_sdcard/main.lua → demo/fs_sdcard/Air640w/main.lua


+ 36 - 36
bsp/air101/demo/gpio/main.lua → demo/gpio/Air101/main.lua

@@ -1,36 +1,36 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "pmdemo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-local LEDA = gpio.setup(24, 0, gpio.PULLUP) -- PB8输出模式
-local LEDB = gpio.setup(25, 0, gpio.PULLUP) -- PB9输出模式
-local LEDC = gpio.setup(26, 0, gpio.PULLUP) -- PB10输出模式
-
-sys.taskInit(function()
-    local count = 0
-    local uid = mcu.unique_id() or ""
-    while 1 do
-        -- 一闪一闪亮晶晶
-        LEDA(count & 0x01 == 0x01 and 1 or 0)
-        LEDB(count & 0x02 == 0x02 and 1 or 0)
-        LEDC(count & 0x03 == 0x03 and 1 or 0)
-        log.info("gpio", "Go Go Go", uid:toHex(), count)
-        sys.wait(1000)
-        count = count + 1
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "pmdemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+local LEDA = gpio.setup(24, 0, gpio.PULLUP) -- PB8输出模式
+local LEDB = gpio.setup(25, 0, gpio.PULLUP) -- PB9输出模式
+local LEDC = gpio.setup(26, 0, gpio.PULLUP) -- PB10输出模式
+
+sys.taskInit(function()
+    local count = 0
+    local uid = mcu.unique_id() or ""
+    while 1 do
+        -- 一闪一闪亮晶晶
+        LEDA(count & 0x01 == 0x01 and 1 or 0)
+        LEDB(count & 0x02 == 0x02 and 1 or 0)
+        LEDC(count & 0x03 == 0x03 and 1 or 0)
+        log.info("gpio", "Go Go Go", uid:toHex(), count)
+        sys.wait(1000)
+        count = count + 1
+    end
+end)
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/gpio/main.lua → demo/gpio/Air302/main.lua


+ 0 - 0
bsp/air724/demo/gpio/main.lua → demo/gpio/Air724/main.lua


+ 27 - 27
bsp/air101/demo/gpio2/main.lua → demo/gpio_irq/Air101/main.lua

@@ -1,27 +1,27 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "gpio2demo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-gpio.setup(7, function()
-    log.info("gpio", "PA7")
-end, gpio.PULLDOWN)
-
-sys.taskInit(function()
-    while 1 do
-        sys.wait(500)
-    end
-end)
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "gpio2demo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+gpio.setup(7, function()
+    log.info("gpio", "PA7")
+end, gpio.PULLDOWN)
+
+sys.taskInit(function()
+    while 1 do
+        sys.wait(500)
+    end
+end)
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/gpio2/main.lua → demo/gpio_irq/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/10.gpio_irq/main.lua → demo/gpio_irq/Air640w/main.lua


+ 0 - 0
bsp/air640w/demo/0.hello_world/main.lua → demo/hello_world/Air640w/main.lua


+ 0 - 0
bsp/air724/demo/hi/main.lua → demo/hi/Air724/main.lua


+ 0 - 0
bsp/air302/demo/http/main.lua → demo/http/Air302/main.lua


+ 0 - 0
bsp/air302/demo/http_download/main.lua → demo/http_download/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/70.http_simple/main.lua → demo/http_simple/Air640w/main.lua


+ 0 - 0
bsp/air101/demo/i2c/SI7021.lua → demo/i2c/Air101/SI7021.lua


+ 0 - 0
bsp/air101/demo/i2c/main.lua → demo/i2c/Air101/main.lua


+ 0 - 0
bsp/air302/demo/i2c/24c02main.lua → demo/i2c/Air302/24c02main.lua


+ 0 - 0
bsp/air302/demo/i2c/main.lua → demo/i2c/Air302/main.lua


+ 0 - 0
bsp/air724/demo/i2c/aht10/main.lua → demo/i2c/Air724/aht10/main.lua


+ 0 - 0
bsp/air724/demo/i2c/sht30/main.lua → demo/i2c/Air724/sht30/main.lua


+ 0 - 0
bsp/air640w/demo/20.json/main.lua → demo/json/Air640w/main.lua


+ 47 - 47
bsp/air101/demo/lcd/main.lua → demo/lcd/Air101/main.lua

@@ -1,48 +1,48 @@
---- 模块功能:lcddemo
--- @module lcd
--- @author Dozingfiretruck
--- @release 2021.01.25
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "lcddemo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-local spi_lcd = spi.device_setup(0,20,0,0,8,2000000,spi.MSB,1,1)
-
--- log.info("lcd.init",
--- lcd.init("gc9a01",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd))
--- log.info("lcd.init",
--- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 0,w = 240,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
--- log.info("lcd.init",
--- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 3,w = 240,h = 240,xoffset = 80,yoffset = 0},spi_lcd))
--- log.info("lcd.init",
--- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 3,w = 320,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
--- log.info("lcd.init",
--- lcd.init("st7735",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 0,w = 128,h = 160,xoffset = 2,yoffset = 1},spi_lcd))
-log.info("lcd.init",
-lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
-
-log.info("lcd.drawLine", lcd.drawLine(20,20,150,20,0x001F))
-log.info("lcd.drawRectangle", lcd.drawRectangle(20,40,120,70,0xF800))
-log.info("lcd.drawCircle", lcd.drawCircle(50,50,20,0x0CE0))
-
-sys.taskInit(function()
-    while 1 do
-        sys.wait(500)
-    end
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
+--- 模块功能:lcddemo
+-- @module lcd
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "lcddemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+local spi_lcd = spi.device_setup(0,20,0,0,8,2000000,spi.MSB,1,1)
+
+-- log.info("lcd.init",
+-- lcd.init("gc9a01",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd))
+-- log.info("lcd.init",
+-- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 0,w = 240,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
+-- log.info("lcd.init",
+-- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 3,w = 240,h = 240,xoffset = 80,yoffset = 0},spi_lcd))
+-- log.info("lcd.init",
+-- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 3,w = 320,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
+-- log.info("lcd.init",
+-- lcd.init("st7735",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 0,w = 128,h = 160,xoffset = 2,yoffset = 1},spi_lcd))
+log.info("lcd.init",
+lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
+
+log.info("lcd.drawLine", lcd.drawLine(20,20,150,20,0x001F))
+log.info("lcd.drawRectangle", lcd.drawRectangle(20,40,120,70,0xF800))
+log.info("lcd.drawCircle", lcd.drawCircle(50,50,20,0x0CE0))
+
+sys.taskInit(function()
+    while 1 do
+        sys.wait(500)
+    end
+end)
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
 -- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/libcoap/main.lua → demo/libcoap/Air302/main.lua


+ 0 - 0
bsp/air302/demo/libgnss/main.lua → demo/libgnss/Air302/main.lua


+ 0 - 0
bsp/air302/demo/libgnss_udp/main.lua → demo/libgnss_udp/Air302/main.lua


+ 0 - 0
bsp/air724/demo/lte/main.lua → demo/lte/Air724/main.lua


+ 46 - 46
bsp/air101/demo/lvgl/main.lua → demo/lvgl/Air101/main.lua

@@ -1,46 +1,46 @@
---- 模块功能:lvgldemo
--- @module lvgl
--- @author Dozingfiretruck
--- @release 2021.01.25
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "lvgldemo"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-log.info("hello luatos")
-
-local spi_lcd = spi.device_setup(0,20,0,0,8,2000000,spi.MSB,1,1)
-log.info("lcd.init",
-lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
-
-log.info("lvgl", lvgl.init())
-lvgl.disp_set_bg_color(nil, 0xFFFFFF)
-local scr = lvgl.obj_create(nil, nil)
-local btn = lvgl.btn_create(scr)
-lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)
-local label = lvgl.label_create(btn)
-lvgl.label_set_text(label, "LuatOS!")
-lvgl.scr_load(scr)
-
-sys.taskInit(function()
-    while 1 do
-        sys.wait(500)
-    end
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
-
-
+--- 模块功能:lvgldemo
+-- @module lvgl
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "lvgldemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+log.info("hello luatos")
+
+local spi_lcd = spi.device_setup(0,20,0,0,8,2000000,spi.MSB,1,1)
+log.info("lcd.init",
+lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
+
+log.info("lvgl", lvgl.init())
+lvgl.disp_set_bg_color(nil, 0xFFFFFF)
+local scr = lvgl.obj_create(nil, nil)
+local btn = lvgl.btn_create(scr)
+lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)
+local label = lvgl.label_create(btn)
+lvgl.label_set_text(label, "LuatOS!")
+lvgl.scr_load(scr)
+
+sys.taskInit(function()
+    while 1 do
+        sys.wait(500)
+    end
+end)
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!
+
+

+ 0 - 0
bsp/air724/demo/meminfo/main.lua → demo/meminfo/Air724/main.lua


+ 0 - 0
bsp/air724/demo/memtest/main.lua → demo/memtest/Air724/main.lua


+ 0 - 0
bsp/air640w/demo/82.modbus_relay2/main.lua → demo/modbus_relay2/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/mqtt/main.lua → demo/mqtt/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/71.mqtt_simple/main.lua → demo/mqtt/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/mqtt2/main.lua → demo/mqtt2/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/73.mqtt2/main.lua → demo/mqtt2/Air640w/main.lua


+ 0 - 0
bsp/air640w/demo/73.mqtt2/my_demo.lua → demo/mqtt2/Air640w/my_demo.lua


+ 0 - 0
bsp/air724/demo/mqtt2/main.lua → demo/mqtt2/Air724/main.lua


+ 0 - 0
bsp/air302/demo/netinfo/main.lua → demo/netinfo/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/92.ntp/main.lua → demo/ntp/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/ota/main.lua → demo/ota/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/88.ota/main.lua → demo/ota/Air640w/main.lua


+ 0 - 0
bsp/air101/demo/pm/main.lua → demo/pm/Air101/main.lua


+ 0 - 0
bsp/air302/demo/pm/main.lua → demo/pm/Air302/main.lua


+ 0 - 0
bsp/air302/demo/psm_tcp/main.lua → demo/psm_tcp/Air302/main.lua


+ 40 - 40
bsp/air101/demo/pwm/main.lua → demo/pwm/Air101/main.lua

@@ -1,40 +1,40 @@
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "mypwm"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
--- PWM4 --> PA7-7
--- PWM3 --> PB3-19
--- PWM2 --> PB2-18
--- PWM1 --> PB1-17
--- PWM0 --> PB0-16
-
-sys.taskInit(function()
-    while 1 do
-        -- 仿呼吸灯效果
-        log.info("pwm", ">>>>>")
-        for i = 10,1,-1 do 
-            pwm.open(1, 1000, i*9) -- 频率1000hz, 占空比0-100
-            sys.wait(200 + i*10)
-        end
-        for i = 10,1,-1 do 
-            pwm.open(4, 1000, 100 - i*9)
-            sys.wait(200 + i*10)
-        end
-        sys.wait(5000)
-    end
-end)
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "mypwm"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+-- PWM4 --> PA7-7
+-- PWM3 --> PB3-19
+-- PWM2 --> PB2-18
+-- PWM1 --> PB1-17
+-- PWM0 --> PB0-16
+
+sys.taskInit(function()
+    while 1 do
+        -- 仿呼吸灯效果
+        log.info("pwm", ">>>>>")
+        for i = 10,1,-1 do 
+            pwm.open(1, 1000, i*9) -- 频率1000hz, 占空比0-100
+            sys.wait(200 + i*10)
+        end
+        for i = 10,1,-1 do 
+            pwm.open(4, 1000, 100 - i*9)
+            sys.wait(200 + i*10)
+        end
+        sys.wait(5000)
+    end
+end)
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air302/demo/pwm/main.lua → demo/pwm/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/14.pwm/main.lua → demo/pwm/Air640w/main.lua


+ 37 - 37
bsp/air101/demo/rtc/main.lua → demo/rtc/Air101/main.lua

@@ -1,37 +1,37 @@
---- 模块功能:rtcdemo
--- @module rtc
--- @author Dozingfiretruck
--- @release 2021.01.25
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "rtcdemo"
-VERSION = "1.0.1"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-sys.taskInit(function()
-    log.info("os.date()", os.date())
-    local t = rtc.get()
-    log.info("rtc", json.encode(t))
-    sys.wait(2000)
-    rtc.set({year=2021,mon=8,day=31,hour=17,min=8,sec=43})
-    log.info("os.date()", os.date())
-    -- rtc.timerStart(0, {year=2021,mon=9,day=1,hour=17,min=8,sec=43})
-    -- rtc.timerStop(0)
-    while 1 do
-        log.info("os.date()", os.date())
-        local t = rtc.get()
-        log.info("rtc", json.encode(t))
-        sys.wait(1000)
-    end
-end)
-
--- 主循环, 必须加
-sys.run()
+--- 模块功能:rtcdemo
+-- @module rtc
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "rtcdemo"
+VERSION = "1.0.1"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+sys.taskInit(function()
+    log.info("os.date()", os.date())
+    local t = rtc.get()
+    log.info("rtc", json.encode(t))
+    sys.wait(2000)
+    rtc.set({year=2021,mon=8,day=31,hour=17,min=8,sec=43})
+    log.info("os.date()", os.date())
+    -- rtc.timerStart(0, {year=2021,mon=9,day=1,hour=17,min=8,sec=43})
+    -- rtc.timerStop(0)
+    while 1 do
+        log.info("os.date()", os.date())
+        local t = rtc.get()
+        log.info("rtc", json.encode(t))
+        sys.wait(1000)
+    end
+end)
+
+-- 主循环, 必须加
+sys.run()

+ 0 - 0
bsp/air724/demo/sdcard/main.lua → demo/sdcard/Air724/main.lua


+ 0 - 0
bsp/air101/demo/sdio/main.lua → demo/sdio/Air101/main.lua


+ 0 - 0
bsp/air101/demo/sfud/main.lua → demo/sfud/Air101/main.lua


+ 0 - 0
bsp/air302/demo/sht20/main.lua → demo/sht20/Air302/main.lua


+ 0 - 0
bsp/air302/demo/sht30/main.lua → demo/sht30/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/81.socket/main.lua → demo/socket (2)/Air640w/main.lua


+ 0 - 0
bsp/air640w/demo/80.socket/main.lua → demo/socket/Air640w/main.lua


+ 0 - 0
bsp/air724/demo/socket/main.lua → demo/socket/Air724/main.lua


+ 0 - 0
bsp/air724/demo/socket_uart/main.lua → demo/socket_uart/Air724/main.lua


+ 0 - 0
bsp/air302/demo/spi/main.lua → demo/spi/Air302/main.lua


+ 0 - 0
bsp/air101/demo/statem/main.lua → demo/statem/Air101/main.lua


+ 0 - 0
bsp/air302/demo/tlink_udp_ds18b20/main.lua → demo/tlink_udp_ds18b20/Air302/main.lua


+ 0 - 0
bsp/air724/demo/tls/main.lua → demo/tls/Air724/main.lua


+ 117 - 117
bsp/air101/demo/u8g2/main.lua → demo/u8g2/Air101/main.lua

@@ -1,117 +1,117 @@
---- 模块功能:u8g2demo
--- @module u8g2
--- @author Dozingfiretruck
--- @release 2021.01.25
-
---[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中26行#define USE_U8G2_WQY12_T_GB2312 打开]]
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "u8g2demo"
-VERSION = "1.0.1"
-
-log.info("main", PROJECT, VERSION)
-
--- sys库是标配
-_G.sys = require("sys")
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
--- 日志TAG, 非必须
-local TAG = "main"
-
--- 初始化显示屏
-log.info(TAG, "init ssd1306")
-
--- u8g2.begin({mode="i2c_sw", pin0=1, pin1=4}) -- 通过PA1 SLK/PA4 SDA模拟, 也可以用硬件i2c脚
-u8g2.begin({mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
-
---u8g2.begin("ssd1306")
-u8g2.SetFontMode(1)
-u8g2.ClearBuffer()
-u8g2.SetFont(u8g2.font_ncenB08_tr)
-u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-u8g2.DrawUTF8("中文测试", 40, 38)
-u8g2.SendBuffer()
-
--- 联网主流程
-sys.taskInit(function()
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("屏幕宽度", 20, 24)
-    u8g2.DrawUTF8("屏幕高度", 20, 42)
-    u8g2.SetFont(u8g2.font_ncenB08_tr)
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
-    u8g2.SendBuffer()
-
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画线测试:", 30, 24)
-    for i = 0, 128, 8 do
-        u8g2.DrawLine(0,40,i,40)
-        u8g2.DrawLine(0,60,i,60)
-        u8g2.SendBuffer()
-    end
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画圆测试:", 30, 24)
-    u8g2.DrawCircle(30,50,10,15)
-    u8g2.DrawDisc(90,50,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("椭圆测试:", 30, 24)
-    u8g2.DrawEllipse(30,50,6,10,15)
-    u8g2.DrawFilledEllipse(90,50,6,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("方框测试:", 30, 24)
-    u8g2.DrawBox(30,40,30,24)
-    u8g2.DrawFrame(90,40,30,24)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("圆角方框:", 30, 24)
-    u8g2.DrawRBox(30,40,30,24,8)
-    u8g2.DrawRFrame(90,40,30,24,8)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("符号测试:", 30, 24)
-    u8g2.DrawUTF8("显示雪人", 30, 38)
-    u8g2.SetFont(u8g2.font_unifont_t_symbols)
-    u8g2.DrawGlyph( 50, 60, 0x2603 )
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("三角测试:", 30, 24)
-    u8g2.DrawTriangle(30,60, 60,30, 90,60)
-    u8g2.SendBuffer()
-
-    sys.wait(3000)
-    u8g2.close()
-    while true do
-        sys.wait(1000)
-    end
-end)
-
--- 主循环, 必须加
-sys.run()
+--- 模块功能:u8g2demo
+-- @module u8g2
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+--[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中26行#define USE_U8G2_WQY12_T_GB2312 打开]]
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "u8g2demo"
+VERSION = "1.0.1"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+-- 日志TAG, 非必须
+local TAG = "main"
+
+-- 初始化显示屏
+log.info(TAG, "init ssd1306")
+
+-- u8g2.begin({mode="i2c_sw", pin0=1, pin1=4}) -- 通过PA1 SLK/PA4 SDA模拟, 也可以用硬件i2c脚
+u8g2.begin({mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
+
+--u8g2.begin("ssd1306")
+u8g2.SetFontMode(1)
+u8g2.ClearBuffer()
+u8g2.SetFont(u8g2.font_ncenB08_tr)
+u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
+u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+u8g2.DrawUTF8("中文测试", 40, 38)
+u8g2.SendBuffer()
+
+-- 联网主流程
+sys.taskInit(function()
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("屏幕宽度", 20, 24)
+    u8g2.DrawUTF8("屏幕高度", 20, 42)
+    u8g2.SetFont(u8g2.font_ncenB08_tr)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
+    u8g2.SendBuffer()
+
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画线测试:", 30, 24)
+    for i = 0, 128, 8 do
+        u8g2.DrawLine(0,40,i,40)
+        u8g2.DrawLine(0,60,i,60)
+        u8g2.SendBuffer()
+    end
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画圆测试:", 30, 24)
+    u8g2.DrawCircle(30,50,10,15)
+    u8g2.DrawDisc(90,50,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("椭圆测试:", 30, 24)
+    u8g2.DrawEllipse(30,50,6,10,15)
+    u8g2.DrawFilledEllipse(90,50,6,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("方框测试:", 30, 24)
+    u8g2.DrawBox(30,40,30,24)
+    u8g2.DrawFrame(90,40,30,24)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("圆角方框:", 30, 24)
+    u8g2.DrawRBox(30,40,30,24,8)
+    u8g2.DrawRFrame(90,40,30,24,8)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("符号测试:", 30, 24)
+    u8g2.DrawUTF8("显示雪人", 30, 38)
+    u8g2.SetFont(u8g2.font_unifont_t_symbols)
+    u8g2.DrawGlyph( 50, 60, 0x2603 )
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("三角测试:", 30, 24)
+    u8g2.DrawTriangle(30,60, 60,30, 90,60)
+    u8g2.SendBuffer()
+
+    sys.wait(3000)
+    u8g2.close()
+    while true do
+        sys.wait(1000)
+    end
+end)
+
+-- 主循环, 必须加
+sys.run()

+ 112 - 112
bsp/air302/demo/u8g2/main.lua → demo/u8g2/Air302/main.lua

@@ -1,112 +1,112 @@
---- 模块功能:u8g2demo
--- @module u8g2
--- @author Dozingfiretruck
--- @release 2021.01.25
-
---[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中26行#define USE_U8G2_WQY12_T_GB2312 打开]]
-
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "u8g2demo"
-VERSION = "1.0.1"
-
--- sys库是标配
-_G.sys = require("sys")
-
-
--- 日志TAG, 非必须
-local TAG = "main"
-
--- 初始化显示屏
-log.info(TAG, "init ssd1306")
-
-u8g2.begin({mode="i2c_sw", pin0=17, pin1=18}) -- 通过GPIO17 SLK/GPIO18 SDA模拟, 也可以用硬件i2c脚
--- u8g2.begin({mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
-
---u8g2.begin("ssd1306")
-u8g2.SetFontMode(1)
-u8g2.ClearBuffer()
-u8g2.SetFont(u8g2.font_ncenB08_tr)
-u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-u8g2.DrawUTF8("中文测试", 40, 38)
-u8g2.SendBuffer()
-
--- 联网主流程
-sys.taskInit(function()
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("屏幕宽度", 20, 24)
-    u8g2.DrawUTF8("屏幕高度", 20, 42)
-    u8g2.SetFont(u8g2.font_ncenB08_tr)
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
-    u8g2.SendBuffer()
-
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画线测试:", 30, 24)
-    for i = 0, 128, 8 do
-        u8g2.DrawLine(0,40,i,40)
-        u8g2.DrawLine(0,60,i,60)
-        u8g2.SendBuffer()
-    end
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画圆测试:", 30, 24)
-    u8g2.DrawCircle(30,50,10,15)
-    u8g2.DrawDisc(90,50,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("椭圆测试:", 30, 24)
-    u8g2.DrawEllipse(30,50,6,10,15)
-    u8g2.DrawFilledEllipse(90,50,6,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("方框测试:", 30, 24)
-    u8g2.DrawBox(30,40,30,24)
-    u8g2.DrawFrame(90,40,30,24)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("圆角方框:", 30, 24)
-    u8g2.DrawRBox(30,40,30,24,8)
-    u8g2.DrawRFrame(90,40,30,24,8)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("符号测试:", 30, 24)
-    u8g2.DrawUTF8("显示雪人", 30, 38)
-    u8g2.SetFont(u8g2.font_unifont_t_symbols)
-    u8g2.DrawGlyph( 50, 60, 0x2603 )
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("三角测试:", 30, 24)
-    u8g2.DrawTriangle(30,60, 60,30, 90,60)
-    u8g2.SendBuffer()
-
-    sys.wait(3000)
-    u8g2.close()
-    while true do
-        sys.wait(1000)
-    end
-end)
-
--- 主循环, 必须加
-sys.run()
+--- 模块功能:u8g2demo
+-- @module u8g2
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+--[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中26行#define USE_U8G2_WQY12_T_GB2312 打开]]
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "u8g2demo"
+VERSION = "1.0.1"
+
+-- sys库是标配
+_G.sys = require("sys")
+
+
+-- 日志TAG, 非必须
+local TAG = "main"
+
+-- 初始化显示屏
+log.info(TAG, "init ssd1306")
+
+u8g2.begin({mode="i2c_sw", pin0=17, pin1=18}) -- 通过GPIO17 SLK/GPIO18 SDA模拟, 也可以用硬件i2c脚
+-- u8g2.begin({mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
+
+--u8g2.begin("ssd1306")
+u8g2.SetFontMode(1)
+u8g2.ClearBuffer()
+u8g2.SetFont(u8g2.font_ncenB08_tr)
+u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
+u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+u8g2.DrawUTF8("中文测试", 40, 38)
+u8g2.SendBuffer()
+
+-- 联网主流程
+sys.taskInit(function()
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("屏幕宽度", 20, 24)
+    u8g2.DrawUTF8("屏幕高度", 20, 42)
+    u8g2.SetFont(u8g2.font_ncenB08_tr)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
+    u8g2.SendBuffer()
+
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画线测试:", 30, 24)
+    for i = 0, 128, 8 do
+        u8g2.DrawLine(0,40,i,40)
+        u8g2.DrawLine(0,60,i,60)
+        u8g2.SendBuffer()
+    end
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画圆测试:", 30, 24)
+    u8g2.DrawCircle(30,50,10,15)
+    u8g2.DrawDisc(90,50,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("椭圆测试:", 30, 24)
+    u8g2.DrawEllipse(30,50,6,10,15)
+    u8g2.DrawFilledEllipse(90,50,6,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("方框测试:", 30, 24)
+    u8g2.DrawBox(30,40,30,24)
+    u8g2.DrawFrame(90,40,30,24)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("圆角方框:", 30, 24)
+    u8g2.DrawRBox(30,40,30,24,8)
+    u8g2.DrawRFrame(90,40,30,24,8)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("符号测试:", 30, 24)
+    u8g2.DrawUTF8("显示雪人", 30, 38)
+    u8g2.SetFont(u8g2.font_unifont_t_symbols)
+    u8g2.DrawGlyph( 50, 60, 0x2603 )
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("三角测试:", 30, 24)
+    u8g2.DrawTriangle(30,60, 60,30, 90,60)
+    u8g2.SendBuffer()
+
+    sys.wait(3000)
+    u8g2.close()
+    while true do
+        sys.wait(1000)
+    end
+end)
+
+-- 主循环, 必须加
+sys.run()

+ 112 - 112
bsp/air640w/demo/61.u8g2/main.lua → demo/u8g2/Air640w/main.lua

@@ -1,112 +1,112 @@
---- 模块功能:u8g2demo
--- @module u8g2
--- @author Dozingfiretruck
--- @release 2021.01.25
-
-local sys = require("sys")
-
---[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中#define USE_U8G2_WQY12_T_GB2312 打开]]
-
--- 项目信息,预留
-PROJECT = "u8g2demo"
-VERSION = "1.0.1"
-
--- 日志TAG, 非必须
-local TAG = "main"
-
--- 初始化显示屏
-log.info(TAG, "init ssd1306")
-u8g2.begin({mode="i2c_sw", pin0=18, pin1=19})
---u8g2.begin({mode="i2c_hw",i2c_id=0,i2c_speed = i2c.FAST})
---u8g2.begin({mode="spi_hw_4pin",spi_id=1,OLED_SPI_PIN_RES=20,OLED_SPI_PIN_DC=28,OLED_SPI_PIN_CS=29})
-u8g2.SetFontMode(1)
-u8g2.ClearBuffer()
-u8g2.SetFont(u8g2.font_ncenB08_tr)
-u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-u8g2.DrawUTF8("中文测试", 40, 38)
-u8g2.SendBuffer()
-
--- 联网主流程
-sys.taskInit(function()
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("屏幕宽度", 20, 24)
-    u8g2.DrawUTF8("屏幕高度", 20, 42)
-    u8g2.SetFont("u8g2_font_ncenB08_tr")
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
-    u8g2.SendBuffer()
-
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画线测试:", 30, 24)
-    for i = 0, 128, 8 do
-        u8g2.DrawLine(0,40,i,40)
-        u8g2.DrawLine(0,60,i,60)
-        u8g2.SendBuffer()
-    end
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画圆测试:", 30, 24)
-    u8g2.DrawCircle(30,50,10,15)
-    u8g2.DrawDisc(90,50,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("椭圆测试:", 30, 24)
-    u8g2.DrawEllipse(30,50,6,10,15)
-    u8g2.DrawFilledEllipse(90,50,6,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("方框测试:", 30, 24)
-    u8g2.DrawBox(30,40,30,24)
-    u8g2.DrawFrame(90,40,30,24)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("圆角方框:", 30, 24)
-    u8g2.DrawRBox(30,40,30,24,8)
-    u8g2.DrawRFrame(90,40,30,24,8)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("符号测试:", 30, 24)
-    u8g2.DrawUTF8("显示雪人", 30, 38)
-    u8g2.SetFont(u8g2.font_unifont_t_symbols)
-    u8g2.DrawGlyph( 50, 60, 0x2603 )
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("三角测试:", 30, 24)
-    u8g2.DrawTriangle(30,60, 60,30, 90,60)
-    u8g2.SendBuffer()
-
-    sys.wait(3000)
-    u8g2.close()
-    while true do
-        sys.wait(1000)
-    end
-end)
-
--- TODO: 用户按钮(PB7), 用于清除配网信息,重新airkiss
-
--- TODO: 联网更新脚本和底层(也许)
-
--- 主循环, 必须加
-sys.run()
+--- 模块功能:u8g2demo
+-- @module u8g2
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+local sys = require("sys")
+
+--[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中#define USE_U8G2_WQY12_T_GB2312 打开]]
+
+-- 项目信息,预留
+PROJECT = "u8g2demo"
+VERSION = "1.0.1"
+
+-- 日志TAG, 非必须
+local TAG = "main"
+
+-- 初始化显示屏
+log.info(TAG, "init ssd1306")
+u8g2.begin({mode="i2c_sw", pin0=18, pin1=19})
+--u8g2.begin({mode="i2c_hw",i2c_id=0,i2c_speed = i2c.FAST})
+--u8g2.begin({mode="spi_hw_4pin",spi_id=1,OLED_SPI_PIN_RES=20,OLED_SPI_PIN_DC=28,OLED_SPI_PIN_CS=29})
+u8g2.SetFontMode(1)
+u8g2.ClearBuffer()
+u8g2.SetFont(u8g2.font_ncenB08_tr)
+u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
+u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+u8g2.DrawUTF8("中文测试", 40, 38)
+u8g2.SendBuffer()
+
+-- 联网主流程
+sys.taskInit(function()
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("屏幕宽度", 20, 24)
+    u8g2.DrawUTF8("屏幕高度", 20, 42)
+    u8g2.SetFont("u8g2_font_ncenB08_tr")
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
+    u8g2.SendBuffer()
+
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画线测试:", 30, 24)
+    for i = 0, 128, 8 do
+        u8g2.DrawLine(0,40,i,40)
+        u8g2.DrawLine(0,60,i,60)
+        u8g2.SendBuffer()
+    end
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画圆测试:", 30, 24)
+    u8g2.DrawCircle(30,50,10,15)
+    u8g2.DrawDisc(90,50,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("椭圆测试:", 30, 24)
+    u8g2.DrawEllipse(30,50,6,10,15)
+    u8g2.DrawFilledEllipse(90,50,6,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("方框测试:", 30, 24)
+    u8g2.DrawBox(30,40,30,24)
+    u8g2.DrawFrame(90,40,30,24)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("圆角方框:", 30, 24)
+    u8g2.DrawRBox(30,40,30,24,8)
+    u8g2.DrawRFrame(90,40,30,24,8)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("符号测试:", 30, 24)
+    u8g2.DrawUTF8("显示雪人", 30, 38)
+    u8g2.SetFont(u8g2.font_unifont_t_symbols)
+    u8g2.DrawGlyph( 50, 60, 0x2603 )
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("三角测试:", 30, 24)
+    u8g2.DrawTriangle(30,60, 60,30, 90,60)
+    u8g2.SendBuffer()
+
+    sys.wait(3000)
+    u8g2.close()
+    while true do
+        sys.wait(1000)
+    end
+end)
+
+-- TODO: 用户按钮(PB7), 用于清除配网信息,重新airkiss
+
+-- TODO: 联网更新脚本和底层(也许)
+
+-- 主循环, 必须加
+sys.run()

+ 148 - 148
bsp/air724/demo/u8g2/main.lua → demo/u8g2/Air724/main.lua

@@ -1,148 +1,148 @@
---- 模块功能:u8g2demo
--- @module u8g2
--- @author Dozingfiretruck
--- @release 2021.01.25
-
-local sys = require("sys")
-
---[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中26行#define USE_U8G2_WQY12_T_GB2312 打开]]
-
--- 项目信息,预留
-VERSION = "1.0.1"
-PROJECT = "demou8g2"
-
--- 日志TAG, 非必须
-local TAG = "main"
-
-pmd.ldoset(3000, pmd.LDO_VLCD)
---pmd.ldoset(3300, pmd.LDO_VIBR)
-
-sys.taskInit(function()
-    local netled = gpio.setup(1, 0)
-    local netmode = gpio.setup(4, 0)
-    local count = 1
-    while 1 do
-        netled(1)
-        netmode(0)
-        sys.wait(500)
-        netled(0)
-        netmode(1)
-        sys.wait(500)
-        log.info("luatos", "hi", count, os.date())
-        count = count + 1
-    end
-end)
-
-function u8g2_init()
-    -- 初始化显示屏
-    log.info(TAG, "init ssd1306")
-    -- 模拟I2C
-    --u8g2.begin({mode="i2c_sw", pin0=18, pin1=19})
-    u8g2.begin({mode="i2c_sw", pin0=14, pin1=15})
-    
-    -- 硬件I2C
-    --i2c.setup(1, i2c.FAST)
-    --u8g2.begin({mode="i2c_hw", i2c_id=1,i2c_speed = i2c.FAST})
-
-    -- 硬件4线SPI
-    --u8g2.begin({mode="spi_hw_4pin",spi_id=1,OLED_SPI_PIN_RES=20,OLED_SPI_PIN_DC=28,OLED_SPI_PIN_CS=29})
-
-    u8g2.SetFontMode(1)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_ncenB08_tr)
-    u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("中文测试", 40, 38)
-    u8g2.SendBuffer()
-end
-
--- 联网主流程
-function test_u8g2()
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("屏幕宽度", 20, 24)
-    u8g2.DrawUTF8("屏幕高度", 20, 42)
-    u8g2.SetFont(u8g2.font_ncenB08_tr)
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
-    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
-    u8g2.SendBuffer()
-
-    sys.wait(2000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画线测试:", 30, 24)
-    for i = 0, 128, 8 do
-        u8g2.DrawLine(0,40,i,40)
-        u8g2.DrawLine(0,60,i,60)
-        u8g2.SendBuffer()
-    end
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("画圆测试:", 30, 24)
-    u8g2.DrawCircle(30,50,10,15)
-    u8g2.DrawDisc(90,50,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("椭圆测试:", 30, 24)
-    u8g2.DrawEllipse(30,50,6,10,15)
-    u8g2.DrawFilledEllipse(90,50,6,10,15)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("方框测试:", 30, 24)
-    u8g2.DrawBox(30,40,30,24)
-    u8g2.DrawFrame(90,40,30,24)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("圆角方框:", 30, 24)
-    u8g2.DrawRBox(30,40,30,24,8)
-    u8g2.DrawRFrame(90,40,30,24,8)
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("符号测试:", 30, 24)
-    u8g2.DrawUTF8("显示雪人", 30, 38)
-    u8g2.SetFont(u8g2.font_unifont_t_symbols)
-    u8g2.DrawGlyph( 50, 60, 0x2603 )
-    u8g2.SendBuffer()
-
-    sys.wait(1000)
-    u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
-    u8g2.DrawUTF8("三角测试:", 30, 24)
-    u8g2.DrawTriangle(30,60, 60,30, 90,60)
-    u8g2.SendBuffer()
-
-    sys.wait(3000)
-    
-end
-
-
-sys.taskInit(function ()
-    sys.wait(15000)
-    u8g2_init()
-    while true do
-        sys.wait(1000)
-        test_u8g2()
-    end
-end)
-
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+--- 模块功能:u8g2demo
+-- @module u8g2
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+local sys = require("sys")
+
+--[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中26行#define USE_U8G2_WQY12_T_GB2312 打开]]
+
+-- 项目信息,预留
+VERSION = "1.0.1"
+PROJECT = "demou8g2"
+
+-- 日志TAG, 非必须
+local TAG = "main"
+
+pmd.ldoset(3000, pmd.LDO_VLCD)
+--pmd.ldoset(3300, pmd.LDO_VIBR)
+
+sys.taskInit(function()
+    local netled = gpio.setup(1, 0)
+    local netmode = gpio.setup(4, 0)
+    local count = 1
+    while 1 do
+        netled(1)
+        netmode(0)
+        sys.wait(500)
+        netled(0)
+        netmode(1)
+        sys.wait(500)
+        log.info("luatos", "hi", count, os.date())
+        count = count + 1
+    end
+end)
+
+function u8g2_init()
+    -- 初始化显示屏
+    log.info(TAG, "init ssd1306")
+    -- 模拟I2C
+    --u8g2.begin({mode="i2c_sw", pin0=18, pin1=19})
+    u8g2.begin({mode="i2c_sw", pin0=14, pin1=15})
+    
+    -- 硬件I2C
+    --i2c.setup(1, i2c.FAST)
+    --u8g2.begin({mode="i2c_hw", i2c_id=1,i2c_speed = i2c.FAST})
+
+    -- 硬件4线SPI
+    --u8g2.begin({mode="spi_hw_4pin",spi_id=1,OLED_SPI_PIN_RES=20,OLED_SPI_PIN_DC=28,OLED_SPI_PIN_CS=29})
+
+    u8g2.SetFontMode(1)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_ncenB08_tr)
+    u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("中文测试", 40, 38)
+    u8g2.SendBuffer()
+end
+
+-- 联网主流程
+function test_u8g2()
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("屏幕宽度", 20, 24)
+    u8g2.DrawUTF8("屏幕高度", 20, 42)
+    u8g2.SetFont(u8g2.font_ncenB08_tr)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
+    u8g2.SendBuffer()
+
+    sys.wait(2000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画线测试:", 30, 24)
+    for i = 0, 128, 8 do
+        u8g2.DrawLine(0,40,i,40)
+        u8g2.DrawLine(0,60,i,60)
+        u8g2.SendBuffer()
+    end
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("画圆测试:", 30, 24)
+    u8g2.DrawCircle(30,50,10,15)
+    u8g2.DrawDisc(90,50,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("椭圆测试:", 30, 24)
+    u8g2.DrawEllipse(30,50,6,10,15)
+    u8g2.DrawFilledEllipse(90,50,6,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("方框测试:", 30, 24)
+    u8g2.DrawBox(30,40,30,24)
+    u8g2.DrawFrame(90,40,30,24)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("圆角方框:", 30, 24)
+    u8g2.DrawRBox(30,40,30,24,8)
+    u8g2.DrawRFrame(90,40,30,24,8)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("符号测试:", 30, 24)
+    u8g2.DrawUTF8("显示雪人", 30, 38)
+    u8g2.SetFont(u8g2.font_unifont_t_symbols)
+    u8g2.DrawGlyph( 50, 60, 0x2603 )
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.DrawUTF8("三角测试:", 30, 24)
+    u8g2.DrawTriangle(30,60, 60,30, 90,60)
+    u8g2.SendBuffer()
+
+    sys.wait(3000)
+    
+end
+
+
+sys.taskInit(function ()
+    sys.wait(15000)
+    u8g2_init()
+    while true do
+        sys.wait(1000)
+        test_u8g2()
+    end
+end)
+
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 46 - 46
bsp/air101/demo/uart/main.lua → demo/uart/Air101/main.lua

@@ -1,46 +1,46 @@
--- LuaTools需要PROJECT和VERSION这两个信息
-PROJECT = "uart_irq"
-VERSION = "1.0.0"
-
-log.info("main", PROJECT, VERSION)
-
--- 引入必要的库文件(lua编写), 内部库不需要require
-local sys = require "sys"
-
---添加硬狗防止程序卡死
-wdt.init(15000)--初始化watchdog设置为15s
-sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
-
-log.info("main", "uart demo")
-
-local uartid = 1
-
---初始化
-local result = uart.setup(
-    uartid,--串口id
-    115200,--波特率
-    8,--数据位
-    1--停止位
-)
-
-
---循环发数据
-sys.timerLoopStart(uart.write,1000,uartid,"test")
-uart.on(uartid, "receive", function(id, len)
-    log.info("uart", "receive", id, len, uart.read(uartid, len))
-end)
-uart.on(uartid, "sent", function(id)
-    log.info("uart", "sent", id)
-end)
-
-sys.taskInit(function()
-    while 1 do
-        sys.wait(500)
-    end
-end)
-
-
--- 用户代码已结束---------------------------------------------
--- 结尾总是这一句
-sys.run()
--- sys.run()之后后面不要加任何语句!!!!!
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "uart_irq"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- 引入必要的库文件(lua编写), 内部库不需要require
+local sys = require "sys"
+
+--添加硬狗防止程序卡死
+wdt.init(15000)--初始化watchdog设置为15s
+sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
+
+log.info("main", "uart demo")
+
+local uartid = 1
+
+--初始化
+local result = uart.setup(
+    uartid,--串口id
+    115200,--波特率
+    8,--数据位
+    1--停止位
+)
+
+
+--循环发数据
+sys.timerLoopStart(uart.write,1000,uartid,"test")
+uart.on(uartid, "receive", function(id, len)
+    log.info("uart", "receive", id, len, uart.read(uartid, len))
+end)
+uart.on(uartid, "sent", function(id)
+    log.info("uart", "sent", id)
+end)
+
+sys.taskInit(function()
+    while 1 do
+        sys.wait(500)
+    end
+end)
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 0 - 0
bsp/air101/demo/uart/uartTimeout/main.lua → demo/uart/Air101/uartTimeout/main.lua


+ 0 - 0
bsp/air101/demo/uart/uartTimeout/readme.txt → demo/uart/Air101/uartTimeout/readme.txt


+ 0 - 0
bsp/air302/demo/uart/main.lua → demo/uart/Air302/main.lua


+ 0 - 0
bsp/air724/demo/uart/main.lua → demo/uart/Air724/main.lua


+ 0 - 0
bsp/air640w/demo/11.uart_irq/main.lua → demo/uart_irq/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/udp/main.lua → demo/udp/Air302/main.lua


+ 0 - 0
bsp/air640w/demo/83.udp/main.lua → demo/udp/Air640w/main.lua


+ 0 - 0
bsp/air640w/demo/84.udp_coap/main.lua → demo/udp_coap/Air640w/main.lua


+ 0 - 0
bsp/air302/demo/udp_uart/main.lua → demo/udp_uart/Air302/main.lua


+ 0 - 0
bsp/air302/demo/update/main.lua → demo/update/Air302/main.lua


Некоторые файлы не были показаны из-за большого количества измененных файлов