main.lua 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "fskvdemo"
  3. VERSION = "1.0.0"
  4. -- sys库是标配
  5. _G.sys = require("sys")
  6. sys.taskInit(function()
  7. sys.wait(1000) -- 免得日志刷没了, 生产环境不需要
  8. -- 检查一下当前固件是否支持fskv
  9. if not fskv then
  10. while true do
  11. log.info("fskv", "this demo need fskv")
  12. sys.wait(1000)
  13. end
  14. end
  15. -- 初始化kv数据库
  16. fskv.init()
  17. log.info("fskv", "init complete")
  18. -- 先放入一堆值
  19. local bootime = fskv.get("boottime")
  20. if bootime == nil or type(bootime) ~= "number" then
  21. bootime = 0
  22. else
  23. bootime = bootime + 1
  24. end
  25. fskv.set("boottime", bootime)
  26. fskv.set("my_bool", true)
  27. fskv.set("my_int", 123)
  28. fskv.set("my_number", 1.23)
  29. fskv.set("my_str", "luatos")
  30. fskv.set("my_table", {name="wendal",age=18})
  31. fskv.set("my_str_int", "123")
  32. fskv.set("1", "123") -- 单字节key
  33. --fskv.set("my_nil", nil) -- 会提示失败,不支持空值
  34. log.info("fskv", "boottime", type(fskv.get("boottime")), fskv.get("boottime"))
  35. log.info("fskv", "my_bool", type(fskv.get("my_bool")), fskv.get("my_bool"))
  36. log.info("fskv", "my_int", type(fskv.get("my_int")), fskv.get("my_int"))
  37. log.info("fskv", "my_number", type(fskv.get("my_number")), fskv.get("my_number"))
  38. log.info("fskv", "my_str", type(fskv.get("my_str")), fskv.get("my_str"))
  39. log.info("fskv", "my_table", type(fskv.get("my_table")), json.encode(fskv.get("my_table")))
  40. log.info("fskv", "my_str_int", type(fskv.get("my_str_int")), fskv.get("my_str_int"))
  41. log.info("fskv", "1 byte key", type(fskv.get("1")), json.encode(fskv.get("1")))
  42. -- 删除测试
  43. fskv.del("my_bool")
  44. local t = fskv.get("my_bool")
  45. log.info("fskv", "my_bool", type(t), t)
  46. -- 查询kv数据库状态
  47. -- local used, total,kv_count = fskv.stat()
  48. -- log.info("fdb", "kv", used,total,kv_count)
  49. -- fskv.clr()
  50. -- local used, total,kv_count = fskv.stat()
  51. -- log.info("fdb", "kv", used,total,kv_count)
  52. -- 压力测试
  53. -- local start = mcu.ticks()
  54. -- local count = 1000
  55. -- for i=1,count do
  56. -- -- sys.wait(10)
  57. -- -- count = count - 1
  58. -- -- fskv.set("BENT1", "--" .. os.date() .. "--")
  59. -- -- fskv.set("BENT2", "--" .. os.date() .. "--")
  60. -- -- fskv.set("BENT3", "--" .. os.date() .. "--")
  61. -- -- fskv.set("BENT4", "--" .. os.date() .. "--")
  62. -- fskv.get("my_bool")
  63. -- end
  64. -- log.info("fskv", mcu.ticks() - start)
  65. end)
  66. -- 用户代码已结束---------------------------------------------
  67. -- 结尾总是这一句
  68. sys.run()
  69. -- sys.run()之后后面不要加任何语句!!!!!