Wendal Chen 3 лет назад
Родитель
Сommit
59217b1336
1 измененных файлов с 84 добавлено и 0 удалено
  1. 84 0
      demo/fskv/main.lua

+ 84 - 0
demo/fskv/main.lua

@@ -0,0 +1,84 @@
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "fskvdemo"
+VERSION = "1.0.0"
+
+-- sys库是标配
+_G.sys = require("sys")
+
+sys.taskInit(function()
+    sys.wait(1000) -- 免得日志刷没了, 生产环境不需要
+
+    -- 检查一下当前固件是否支持fskv
+    if not fskv then
+        while true do
+            log.info("fskv", "this demo need fskv")
+            sys.wait(1000)
+        end
+    end
+
+    -- 初始化kv数据库
+    fskv.init()
+    log.info("fskv", "init complete")
+    -- 先放入一堆值
+    local bootime = fskv.get("boottime")
+    if bootime == nil or type(bootime) ~= "number" then
+        bootime = 0
+    else
+        bootime = bootime + 1
+    end
+    fskv.set("boottime", bootime)
+
+    fskv.set("my_bool", true)
+    fskv.set("my_int", 123)
+    fskv.set("my_number", 1.23)
+    fskv.set("my_str", "luatos")
+    fskv.set("my_table", {name="wendal",age=18})
+    
+    fskv.set("my_str_int", "123")
+    fskv.set("1", "123") -- 单字节key
+    --fskv.set("my_nil", nil) -- 会提示失败,不支持空值
+
+
+    log.info("fskv", "boottime",      type(fskv.get("boottime")),    fskv.get("boottime"))
+    log.info("fskv", "my_bool",      type(fskv.get("my_bool")),    fskv.get("my_bool"))
+    log.info("fskv", "my_int",       type(fskv.get("my_int")),     fskv.get("my_int"))
+    log.info("fskv", "my_number",    type(fskv.get("my_number")),  fskv.get("my_number"))
+    log.info("fskv", "my_str",       type(fskv.get("my_str")),     fskv.get("my_str"))
+    log.info("fskv", "my_table",     type(fskv.get("my_table")),   json.encode(fskv.get("my_table")))
+    log.info("fskv", "my_str_int",     type(fskv.get("my_str_int")),   fskv.get("my_str_int"))
+    log.info("fskv", "1 byte key",     type(fskv.get("1")),   json.encode(fskv.get("1")))
+
+    -- 删除测试
+    fskv.del("my_bool")
+    local t = fskv.get("my_bool")
+    log.info("fskv", "my_bool",      type(t),    t)
+
+    -- 查询kv数据库状态
+    -- local used, total,kv_count = fskv.stat()
+    -- log.info("fdb", "kv", used,total,kv_count)
+
+    -- fskv.clr()
+    -- local used, total,kv_count = fskv.stat()
+    -- log.info("fdb", "kv", used,total,kv_count)
+    
+
+    -- 压力测试
+    -- local start = mcu.ticks()
+    -- local count = 1000
+    -- for i=1,count do
+    --     -- sys.wait(10)
+    --     -- count = count - 1
+    --     -- fskv.set("BENT1", "--" .. os.date() .. "--")
+    --     -- fskv.set("BENT2", "--" .. os.date() .. "--")
+    --     -- fskv.set("BENT3", "--" .. os.date() .. "--")
+    --     -- fskv.set("BENT4", "--" .. os.date() .. "--")
+    --     fskv.get("my_bool")
+    -- end
+    -- log.info("fskv", mcu.ticks() - start)
+end)
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!