main.lua 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. -- 必须在这个位置定义PROJECT和VERSION变量
  2. -- PROJECT:ascii string类型,可以随便定义,只要不使用,就行
  3. -- VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
  4. PROJECT = "LUAT_IOT_SERVER_UPDATE"
  5. VERSION = "1.0.0"
  6. --[[
  7. 使用Luat物联云平台固件升级的功能,必须按照以下步骤操作:
  8. 1、打开Luat物联云平台前端页面:https://iot.openluat.com/
  9. 2、如果没有用户名,注册用户
  10. 3、注册用户之后,如果没有对应的项目,创建一个新项目
  11. 4、进入对应的项目,点击左边的项目信息,右边会出现信息内容,找到ProductKey:把ProductKey的内容,赋值给PRODUCT_KEY变量
  12. ]]
  13. PRODUCT_KEY = "jeEtlN6q5kQe474XsfSJ9XBc6Zy3jVD6"
  14. -- 加载日志功能模块,并且设置日志输出等级
  15. -- 如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可
  16. require "log"
  17. LOG_LEVEL = log.LOGLEVEL_TRACE
  18. --[[
  19. 如果使用UART输出日志,打开这行注释的代码"--log.openTrace(true,1,115200)"即可,根据自己的需求修改此接口的参数
  20. 如果要彻底关闭脚本中的输出日志(包括调用log模块接口和Lua标准print接口输出的日志),执行log.openTrace(false,第二个参数跟调用openTrace接口打开日志的第二个参数相同),例如:
  21. 1、没有调用过sys.opntrace配置日志输出端口或者最后一次是调用log.openTrace(true,nil,921600)配置日志输出端口,此时要关闭输出日志,直接调用log.openTrace(false)即可
  22. 2、最后一次是调用log.openTrace(true,1,115200)配置日志输出端口,此时要关闭输出日志,直接调用log.openTrace(false,1)即可
  23. ]]
  24. -- log.openTrace(true,1,115200)
  25. require "sys"
  26. require "net"
  27. -- 每1分钟查询一次GSM信号强度
  28. -- 每1分钟查询一次基站信息
  29. net.startQueryAll(60000, 60000)
  30. -- 此处关闭RNDIS网卡功能
  31. -- 否则,模块通过USB连接电脑后,会在电脑的网络适配器中枚举一个RNDIS网卡,电脑默认使用此网卡上网,导致模块使用的sim卡流量流失
  32. -- 如果项目中需要打开此功能,把ril.request("AT+RNDISCALL=0,1")修改为ril.request("AT+RNDISCALL=1,1")即可
  33. -- 注意:core固件:V0030以及之后的版本、V3028以及之后的版本,才以稳定地支持此功能
  34. ril.request("AT+RNDISCALL=0,1")
  35. -- 加载控制台调试功能模块(此处代码配置的是uart2,波特率115200)
  36. -- 此功能模块不是必须的,根据项目需求决定是否加载
  37. -- 使用时注意:控制台使用的uart不要和其他功能使用的uart冲突
  38. -- 使用说明参考demo/console下的《console功能使用说明.docx》
  39. -- require "console"
  40. -- console.setup(2, 115200)
  41. -- 加载网络指示灯和LTE指示灯功能模块
  42. -- 根据自己的项目需求和硬件配置决定:1、是否加载此功能模块;2、配置指示灯引脚
  43. -- 合宙官方出售的Air720U开发板上的网络指示灯引脚为pio.P0_1,LTE指示灯引脚为pio.P0_4
  44. require 'pins'
  45. require "netLed"
  46. pmd.ldoset(2, pmd.LDO_VLCD)
  47. netLed.setup(true, pio.P0_1, pio.P0_4)
  48. -- 网络指示灯功能模块中,默认配置了各种工作状态下指示灯的闪烁规律,参考netLed.lua中ledBlinkTime配置的默认值
  49. -- 如果默认值满足不了需求,此处调用netLed.updateBlinkTime去配置闪烁时长
  50. -- LTE指示灯功能模块中,配置的是注册上4G网络,灯就常亮,其余任何状态灯都会熄灭
  51. -- 加载错误日志管理功能模块【强烈建议打开此功能】
  52. -- 如下2行代码,只是简单的演示如何使用errDump功能,详情参考errDump的api
  53. require "errDump"
  54. errDump.request("udp://ota.airm2m.com:9072")
  55. require "socketCh395"
  56. local date = {
  57. mode = 1, -- 1表示客户端;2表示服务器;默认为1
  58. intPin = pio.P0_22, -- 以太网芯片中断通知引脚
  59. rstPin = pio.P0_21, -- 复位以太网芯片引脚
  60. powerFunc=function ( state )
  61. if state then
  62. local setGpioFnc_TX = pins.setup(pio.P0_7, 0)
  63. pmd.ldoset(15, pmd.LDO_VMMC)
  64. else
  65. pmd.ldoset(0, pmd.LDO_VMMC)
  66. local setGpioFnc_TX = pins.setup(pio.P0_7, 1)
  67. end
  68. end,
  69. spi = {spi.SPI_1, 0, 0, 8, 800000} -- SPI通道参数,id,cpha,cpol,dataBits,clock,默认spi.SPI_1,0,0,8,800000
  70. }
  71. sys.taskInit(function(...)
  72. link.openNetwork(link.CH395, date)
  73. end)
  74. -- 加载远程升级功能测试模块
  75. require "testUpdate"
  76. -- 启动系统框架
  77. sys.init(0, 0)
  78. sys.run()