main.lua 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. --必须在这个位置定义PROJECT和VERSION变量
  2. --PROJECT:ascii string类型,可以随便定义,只要不使用,就行
  3. --VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
  4. --PROJECT 字符串中,不用带下划线,会干扰自建升级平台上传升级文件格式解析
  5. --G31W时使用(Luat_V3036_RDA8910_NOVLTE)
  6. --发布版本规划:1.0.4*,2.xx.xx
  7. --天地人协议任联基站版本 1.0.6*,6.xx.xx
  8. PROJECT = "Rlian-Station-Kunming"
  9. VERSION = "1.0.71"
  10. --VERSION = "200.3037.1"
  11. --G31W1时使用(Luat_V3027_RDA8910_BT_FLOAT)
  12. --发布版本规划:1.0.5*,3.xx.xx
  13. -- PROJECT = "Rlian-Station-G31W1"
  14. -- VERSION = "1.0.59"
  15. --VERSION = "300.3037.1"
  16. --G31W2时使用(Luat_V3036_RDA8910_NOVLTE)
  17. --发布版本规划:4.xx.xx
  18. --PROJECT = "Rlian-Station-G31W2"
  19. --VERSION = "4.0.1"
  20. --合宙平台密钥
  21. --PRODUCT_KEY = "err8mdsS0v3L9m7OA5DzEANkvx2QoS6P"
  22. --任联平台密钥
  23. PRODUCT_KEY = "ddd0422aef65441cbe1c6cccd84e2fa0"
  24. -- 日志级别
  25. require "log"
  26. LOG_LEVEL = log.LOGLEVEL_TRACE
  27. log.openTrace(1,nil,115200)
  28. require "sys"
  29. --require "utils"
  30. --require "patch"
  31. require "pins"
  32. -- 加载GSM
  33. require "net"
  34. --8秒后查询第一次csq
  35. net.startQueryAll(8 * 1000, 60 * 1000)
  36. -- 控制台
  37. --require "console"
  38. --console.setup(1, 115200) //开启后,socket无法联网!!
  39. --加载网络指示灯和LTE指示灯功能模块
  40. --根据自己的项目需求和硬件配置决定:1、是否加载此功能模块;2、配置指示灯引脚
  41. --合宙官方出售的Air720U开发板上的网络指示灯引脚为pio.P0_1,LTE指示灯引脚为pio.P0_4
  42. require "netLed"
  43. pmd.ldoset(2,pmd.LDO_VLCD)
  44. netLed.setup(true,pio.P0_1,pio.P0_4)
  45. --设置设备配置参数
  46. require "configNvm"
  47. require "nvm"
  48. local rfidType = nvm.get("rfidType")
  49. -- local rfidType = "tiandiren"
  50. local gpsProtoType = nvm.get("gpsProtoType")
  51. --网络指示灯功能模块中,默认配置了各种工作状态下指示灯的闪烁规律,参考netLed.lua中ledBlinkTime配置的默认值
  52. --如果默认值满足不了需求,此处调用netLed.updateBlinkTime去配置闪烁时长
  53. --LTE指示灯功能模块中,配置的是注册上4G网络,灯就常亮,其余任何状态灯都会熄灭
  54. --[[
  55. --供电检测中断,设备断电后,达到一定时间(例如:30分钟),批量保存缓存数据到flash
  56. --GPIO54配置为中断,可通过getGpio54Fnc()获取输入电平,产生中断时,自动执行gpio54IntFnc函数
  57. getGpio54Fnc = pins.setup(pio.P1_22,gpio54IntFnc)
  58. function gpio54IntFnc(msg)
  59. log.info("testGpioSingle.gpio54IntFnc",msg,getGpio54Fnc())
  60. --上升沿中断
  61. if msg==cpu.INT_GPIO_POSEDGE then
  62. --下降沿中断
  63. else
  64. end
  65. end
  66. ]]
  67. -- 系统工具
  68. require "misc"
  69. --加载三色指示灯模块
  70. require "ledTask"
  71. --cmd命令行测试
  72. require"cmd"
  73. require"utils"
  74. --[[
  75. sys.timerLoopStart(function()
  76. local cmd_str = string.split("config file -a=1 -b --count=2", ' ')
  77. --local cmd_str = {"config","file", "-a=1", "-b", "--count=2"}
  78. local options,arguments = cmd.parse(cmd_str)
  79. --log.info("main.cmd", "options:", json.encode(options), "arguments:", json.encode(arguments))
  80. end, 2000)
  81. ]]
  82. --蓝牙&wifi测试
  83. --require"bleSlave"
  84. --开启GPS定位器功能
  85. if gpsProtoType == "gumi" then
  86. require "tracker"
  87. end
  88. require "httpTask"
  89. require "otaTask"
  90. if rfidType == "renlian" then
  91. --任联心跳通道
  92. require "socketHeartbeatTask"
  93. --数据通道任务
  94. require "socketTask"
  95. require "uartTask"
  96. elseif rfidType == "tiandiren" then
  97. require "uartTaskV2"
  98. require "longLinkSocketTask"
  99. elseif rfidType == "dahua" then
  100. require "uartTaskDahua"
  101. require "longLinkSocketDahua"
  102. end
  103. --测试专用
  104. --require "testSocket"
  105. --require "uartTaskTest"
  106. --加载错误日志管理功能模块【强烈建议打开此功能】
  107. --如下2行代码,只是简单的演示如何使用errDump功能,详情参考errDump的api
  108. require "errDump"
  109. require"nvm"
  110. --错误日志上报地址
  111. local errorLogReportUrl = nvm.get("errorLogReportUrl") or "udp://ota.airm2m.com:9072"
  112. --错误日志上报间隔
  113. local errorLogReportInterval = nvm.get("errorLogReportInterval") or 600
  114. errDump.request(errorLogReportUrl,errorLogReportInterval*1000)
  115. --errDump.request("udp://125.119.82.113:11114",60000)
  116. require "ntp"
  117. ntp.setServers({"ntp.renlianiot.com","ntp.renlianiot.com","ntp.renlianiot.com","time1.aliyun.com","ntp.aliyun.com","ntp1.aliyun.com"})
  118. --ntp.setServers({"ntp.renlianiot.com"})
  119. ntp.timeSync(1,function()
  120. sys.publish("TIMER_SYNC_SUCCESS",true)
  121. log.info("main.timeSync","----------------> AutoTimeSync is Done ! <----------------")
  122. end)
  123. sys.timerLoopStart(function()
  124. log.info("main.timer","--------->ntp.isEnd():",ntp.isEnd(),os.time(),",rssi:",net.getRssi())
  125. log.info("rfid_type---------main" ,nvm.get("rfidType"))
  126. end,5000)
  127. -- 启动系统框架
  128. sys.init(0, 0)
  129. sys.run()