main.lua 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "vsimdemo"
  3. VERSION = "1.0.0"
  4. log.info("main", PROJECT, VERSION)
  5. -- sys库是标配
  6. _G.sys = require("sys")
  7. mobile.config(mobile.USB_ETHERNET, 3)
  8. mobile.vsimInit()
  9. mobile.flymode(nil,true)
  10. mobile.vsimOnOff(true)
  11. mobile.flymode(nil,false)
  12. sys.taskInit(function()
  13. if rtos.bsp() == "UIS8850BM" then
  14. sys.wait(2000)
  15. end
  16. log.info("status", mobile.status())
  17. local band = zbuff.create(40)
  18. local band1 = zbuff.create(40)
  19. mobile.getBand(band)
  20. log.info("当前使用的band:")
  21. for i=0,band:used()-1 do
  22. log.info("band", band[i])
  23. end
  24. log.info("status", mobile.status())
  25. sys.wait(2000)
  26. while 1 do
  27. log.info("imei", mobile.imei())
  28. log.info("imsi", mobile.imsi())
  29. local sn = mobile.sn()
  30. if sn then
  31. log.info("sn", sn:toHex())
  32. end
  33. log.info("status", mobile.status())
  34. log.info("iccid", mobile.iccid())
  35. log.info("csq", mobile.csq()) -- 4G模块的CSQ并不能完全代表强度
  36. log.info("rssi", mobile.rssi()) -- 需要综合rssi/rsrq/rsrp/snr一起判断
  37. log.info("rsrq", mobile.rsrq())
  38. log.info("rsrp", mobile.rsrp())
  39. log.info("snr", mobile.snr())
  40. log.info("simid", mobile.simid()) -- 这里是获取当前SIM卡槽
  41. log.info("apn", mobile.apn(0,1))
  42. log.info("ip", socket.localIP())
  43. log.info("lua", rtos.meminfo())
  44. -- sys内存
  45. log.info("sys", rtos.meminfo("sys"))
  46. sys.wait(15000)
  47. end
  48. end)
  49. -- 基站数据的查询
  50. -- 订阅式, 模块本身会周期性查询基站信息,但通常不包含临近小区
  51. sys.subscribe("CELL_INFO_UPDATE", function()
  52. log.info("cell", json.encode(mobile.getCellInfo()))
  53. end)
  54. -- 轮询式, 包含临近小区信息,这是手动搜索,和上面的自动搜索冲突,开启一个就行
  55. sys.taskInit(function()
  56. sys.wait(15000)
  57. mobile.config(mobile.CONF_SIM_WC_MODE, 2)
  58. while 1 do
  59. mobile.reqCellInfo(10)
  60. sys.wait(11000)
  61. log.info("cell", json.encode(mobile.getCellInfo()))
  62. mobile.config(mobile.CONF_SIM_WC_MODE, 2)
  63. end
  64. end)
  65. -- 获取sim卡的状态
  66. sys.subscribe("SIM_IND", function(status, value)
  67. log.info("sim status", status)
  68. if status == 'GET_NUMBER' then
  69. log.info("number", mobile.number(0))
  70. end
  71. if status == "SIM_WC" then
  72. log.info("sim", "write counter", value)
  73. end
  74. end)
  75. -- 用户代码已结束---------------------------------------------
  76. -- 结尾总是这一句
  77. sys.run()
  78. -- sys.run()之后后面不要加任何语句!!!!!