main.lua 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "LOG"
  3. VERSION = "2.0.0"
  4. --[[
  5. 本demo演示 string字符串的基本操作
  6. 1. lua的字符串是带长度, 这意味着, 它不依赖0x00作为结束字符串, 可以包含任意数据
  7. 2. lua的字符串是不可变的, 就不能直接修改字符串的一个字符, 修改字符会返回一个新的字符串
  8. ]]
  9. -- sys库是标配
  10. _G.sys = require("sys")
  11. sysplus = require("sysplus")
  12. local netLed = require("netLed")
  13. --GPIO18配置为输出,默认输出低电平,可通过setGpio18Fnc(0或者1)设置输出电平
  14. local LEDA= gpio.setup(27, 0, gpio.PULLUP)
  15. sys.taskInit(function ()
  16. sys.wait(1000) -- 免得看不到日志
  17. local tmp
  18. --实验1:以小端方式编码
  19. local data = string.pack("<I", 0xAABBCCDD) --‘<’表示以小端方式编码,'I'表示,unsigned int , 4字节
  20. log.info("pack:", string.format("%02X", data:byte(1)), --输出小端编码后的数据
  21. string.format("%02X", data:byte(2)),
  22. string.format("%02X", data:byte(3)),
  23. string.format("%02X", data:byte(4)))
  24. --实验2:以大端方式编码
  25. local data = string.pack(">I", 0xAABBCCDD)
  26. log.info("pack:", string.format("%02X", data:byte(1)), --输出大端编码后的数据
  27. string.format("%02X", data:byte(2)),
  28. string.format("%02X", data:byte(3)),
  29. string.format("%02X", data:byte(4)))
  30. --实验3:对上面已经完成的大端编码,再次进行解包为每个字节
  31. local byte1,byte2,byte3,byte4 = string.unpack(">BBBB", data) --将32位数据拆成4个8位字节数据
  32. --log.info("Unpack", byte1,byte2,byte3,byte4)
  33. log.info("Unpack:", string.format("%02X", byte1), --以十六进制形式输出拆解后的4个字节数据
  34. string.format("%02X", byte2),
  35. string.format("%02X", byte3),
  36. string.format("%02X", byte4))
  37. end)
  38. -- 这里演示4G模块上网后,会自动点亮网络灯,方便用户判断模块是否正常开机
  39. sys.taskInit(function()
  40. while true do
  41. sys.wait(6000)
  42. if mobile.status() == 1 then
  43. gpio.set(27, 1)
  44. else
  45. gpio.set(27, 0)
  46. mobile.reset()
  47. end
  48. end
  49. end)
  50. -- 用户代码已结束---------------------------------------------
  51. -- 结尾总是这一句
  52. sys.run()
  53. -- sys.run()之后后面不要加任何语句!!!!!